簡體   English   中英

如何在Java 11 HTTP客戶端中保持連接活躍

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM