我知道您可以使用System属性101来设置keep—alive,并且这个值只在加载jdk.internal.net.http.ConnectationPool类时读取一次.之后,it cannot be changed anymore.然而,这将使java.net.http.HttpClient的所有实例具有相同的保持活动设置.有没有一种方法可以做到这一点,这是特定于客户端的单个实例的?

我的一个 idea 是显式地设置请求的头.示例:

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

然而,不确定这是否会起作用,或者是否有更好的方法来覆盖这样的设置. 我很惊讶地看到客户端构建器上没有这样的配置.

推荐答案

不幸的是,目前要做到这一点的唯一方法是在Java命令行上使用系统属性.服务器返回的Keep-Alive报头字段当前被忽略,尽管有一个RFE需要重新访问:https://bugs.openjdk.org/browse/JDK-8326160.另请注意,Keep-Alive仅对HTTP/1.1有效(不适用于HTTP/2)

Java相关问答推荐

使用log 4j2格式的Hibernate 显示SQL日志(log)

Java应用程序崩溃时试图读取联系人从电话

为什么Java中的两个日期有差异?

如何使用jooq generator将表名和列名映射为人类可读的?

即使我正在使用并发方法,使用Javascript的应用程序也会继续冻结'

Hibernate EmptyInterceptor可以工作,但不能拦截器

Helidon 4和Http API

将java.util.Date转换为OffsetDateTime

Mac上的全屏截图在使用JavaFX时不能正常工作吗?

使用Room Database删除Jetpack合成中的所有项目后,UI未重新合成

未找到适用于响应类型[类java.io.InputStream]和内容类型[Text/CSV]的HttpMessageConverter

如何只修改父类ChroniclerView位置0处的第一个嵌套ChroniclerView(child)元素?

如何在 spring 数据的MongoDB派生查询方法中使用$EXISTS

我如何为我的Java抵押贷款代码执行加薪操作(&Q)

如何使用Hibernate v6.2构建NamingStrategy,以表名作为所有列的前缀?

如何通过gradle命令行从build.gradle获得Java targetCompatibility

Java方法参数:括号中的类型声明?

双对象供应商

为什么child-pom会创建一个新版本

Spring Boot应用程序中的自定义constraintvalidator不会被调用