qiG*_*uar 5 java http2 java-http-client java-11
我正在使用HttpClient带有 HTTP/2的 Java 11 ,需要保持连接活动几分钟,但构建器没有设置它的选项。有没有办法指定这一点并使客户端保持连接活动一段时间?
Rob*_*ert 11
如果您构建标准的 HttpClient,例如HttpClient.newHttpClient();默认情况下使用连接池创建。默认情况下,此池使连接保持活动状态 1200 秒(20 分钟)。
如果您想更改保持活动超时,您可以使用属性来实现jdk.httpclient.keepalive.timeout。但是,该值仅在类jdk.internal.net.http.ConnectionPool加载时读取一次。之后就不能再更改了。
因此,您必须为整个 JVM 设置此属性:
-Djdk.httpclient.keepalive.timeout=99999
Run Code Online (Sandbox Code Playgroud)
或者在ConnectionPool类加载之前的运行时:
System.setProperty("jdk.httpclient.keepalive.timeout", "99999");
Run Code Online (Sandbox Code Playgroud)
第三种选择是使用命名的文件${java.home}/conf/net.properties并在其中设置属性。