![](/img/trans.png)
[英]How to keep Java Client Socket alive when network connection drops?
[英]How to keep connection alive in Java 11 http client
我正在將Java 11 HttpClient
與HTTP / 2一起使用,並且需要保持幾分鍾的連接狀態,但是構建器沒有設置它的選項。 有沒有一種方法可以指定它並使客戶端保持連接一段時間?
如果您構建標准的HttpClient,例如使用HttpClient.newHttpClient();
默認情況下會創建一個連接池。 默認情況下,該池使連接保持活動狀態1200秒(20分鍾)。
如果要更改保持活動超時,則可以使用屬性jdk.httpclient.keepalive.timeout
。 但是,在加載類jdk.internal.net.http.ConnectionPool
時,該值僅讀取一次。 之后便無法更改了。
因此,您必須為整個JVM設置此屬性:
-Djdk.httpclient.keepalive.timeout=99999
或在運行時加載ConnectionPool
類之前:
System.setProperty("jdk.httpclient.keepalive.timeout", "99999");
第三種選擇是使用名為${java.home}/conf/net.properties
的文件並在其中設置屬性。
默認情況下,HTTP / 2和HTTP / 1.1連接均保持活動狀態。 在同一主機上打開多個並發連接時,會有一些例外-然后只有其中一個保持活動。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.