有没有一种方法可以使保持活动设置特定于 java.net.http.HttpClient 的一个实例

问题描述 投票:0回答:1

我知道你可以使用系统属性“jdk.httpclient.keepalive.timeout”设置keep-alive,并且该值仅在类jdk.internal.net.http.ConnectionPool加载时读取一次。之后就无法再更改了。但是,这将使 java.net.http.HttpClient 的所有实例具有相同的保持活动设置。有没有一种方法可以做到这一点,即特定于客户端的单个实例?

我的一个想法是明确地设置请求的标头。示例:

HTTP/1.1 200 OK
Connection: Keep-Alive
Keep-Alive: timeout=5, max=1000

但是,不确定这是否有效,或者是否有更好的方法来覆盖这样的设置。我很惊讶地发现客户端构建器上没有这样的配置。

httpclient java-11 keep-alive java-http-client
1个回答
0
投票

不幸的是,目前执行此操作的唯一方法是使用 java 命令行上的系统属性。服务器返回的 Keep-Alive 标头字段当前被忽略,但有一个 RFE 可以重新访问它:https://bugs.openjdk.org/browse/JDK-8326160。另请注意,Keep-Alive 仅对 HTTP/1.1 有效(不适用于 HTTP/2)

最新问题
© www.soinside.com 2019 - 2024. All rights reserved.