Module java.net.http
java.net.http API使用的系统属性
以下是JDK中java.net.http客户端实现使用的系统网络属性列表。如果给定一个不能解析为数字的字符串,则假定所有需要数字值的属性使用默认值。除非另有说明,否则所有值都可以在conf/net.properties
文件中设置。在所有情况下,值可以作为命令行上的系统属性指定,此时,任何conf/net.properties
中的值都将被覆盖。不能保证属性值可以通过System.setProperty()
方法进行程序化设置。此API的其他实现可能选择不支持这些属性。
-
jdk.httpclient.allowRestrictedHeaders
(默认值:见下文)
一个逗号分隔的通常受限制的HTTP标头名称列表,用户可以在HTTP请求中或通过用户代码在HttpRequest实例中设置。默认情况下,以下请求标头不允许用户代码设置:connection、content-length、expect、host和upgrade。您可以使用此属性覆盖此行为。名称不区分大小写,忽略空格。请注意,此属性仅用于测试,而不适用于实际部署。在使用此属性时可能会发生协议错误或其他未定义行为。根据上下文,可能会有其他受限制的标头不允许设置。当相关的HttpClient设置了认证器时,这包括"Authorization"标头。这些限制无法通过此属性覆盖。 -
jdk.httpclient.bufsize
(默认值:16384字节或16 kB)
以字节为单位用于内部分配缓冲区的大小。 -
jdk.httpclient.connectionPoolSize
(默认值:0)
保留在HTTP/1.1保持活动缓存中的最大连接数。值为0表示缓存无限制。 -
jdk.httpclient.connectionWindowSize
(默认值:2^26)
HTTP/2客户端连接窗口大小(以字节为单位)。最大大小为2^31-1。此值不能小于流窗口大小,流窗口大小可以通过jdk.httpclient.windowsize
系统属性进行配置。 -
jdk.httpclient.disableRetryConnect
(默认值:false)
是否禁用连接失败的自动重试。如果为false,则会尝试重试(受重试限制限制)。 -
jdk.httpclient.enableAllMethodRetry
(默认值:false)
是否允许自动重试非幂等的HTTP请求。 -
jdk.httpclient.enablepush
(默认值:1)
是否启用HTTP/2推送承诺。值为1表示启用推送承诺;值为0表示禁用。 -
jdk.httpclient.hpack.maxheadertablesize
(默认值:16384或16 kB)
HTTP/2客户端最大HPACK标头表大小(以字节为单位)。 -
jdk.httpclient.HttpClient.log
(默认值:无)
通过Platform Logging API启用各种事件的高级日志记录。该值包含以下任何一项的逗号分隔列表:- errors
- requests
- headers
- content
- frames
- ssl
- trace
- channel
您可以将frames项目附加到以下任何一项的冒号分隔列表中:- control
- data
- window
- all
指定一个项目将其添加到HTTP客户端的日志中。例如,如果指定以下值,则Platform Logging API将记录所有可能的HTTP客户端事件:
"errors,requests,headers,frames:control:data:window,ssl,trace,channel"
请注意,您可以将control:data:window替换为all。日志记录器的名称为"jdk.httpclient.HttpClient",所有日志记录均为INFO级别。 -
jdk.httpclient.keepalive.timeout
(默认值:30)
在保持活动缓存中保持空闲HTTP连接的秒数。此属性适用于HTTP/1.1和HTTP/2。HTTP/2的值可以使用jdk.httpclient.keepalive.timeout.h2属性
进行覆盖。 -
jdk.httpclient.keepalive.timeout.h2
(默认值:见下文)
保持空闲HTTP/2连接的秒数。如果未设置,则使用jdk.httpclient.keepalive.timeout
设置。 -
jdk.httpclient.maxframesize
(默认值:16384或16kB)
HTTP/2客户端最大帧大小(以字节为单位)。服务器不得发送大于此大小的帧。 -
jdk.httpclient.maxstreams
(默认值:100)
客户端允许服务器同时打开的最大数量的HTTP/2推送流。 -
jdk.httpclient.receiveBufferSize
(默认值:操作系统默认值)
HTTP客户端套接字接收缓冲区大小(以字节为单位)。 -
jdk.httpclient.redirects.retrylimit
(默认值:5)
在重定向或出现任何原因导致失败时发送HTTP请求的最大尝试次数。 -
jdk.httpclient.websocket.writeBufferSize
(默认值:16384或16kB)
Web套接字实现用于套接字写入的缓冲区大小。 -
jdk.httpclient.windowsize
(默认值:16777216或16 MB)
HTTP/2客户端流窗口大小(以字节为单位)。 -
jdk.httpclient.auth.retrylimit
(默认值:3)
基本身份验证过滤器将尝试重试失败身份验证的次数。 -
jdk.httpclient.sendBufferSize
(默认值:操作系统默认值)
HTTP客户端套接字发送缓冲区大小。小于或等于零的值将被忽略。 -
jdk.internal.httpclient.disableHostnameVerification
(默认值:false)
如果为true(或设置为空字符串),则在SSL证书中禁用主机名验证。这仅适用于系统属性,不适用于conf/net.properties
。仅供测试目的使用。 -
jdk.http.auth.proxying.disabledSchemes
(默认值:见conf/net.properties)
一个逗号分隔的HTTP身份验证方案名称列表,不允许HTTP客户端实现用于HTTP代理。 -
jdk.http.auth.tunneling.disabledSchemes
(默认值:见conf/net.properties)
一个逗号分隔的HTTP身份验证方案名称列表,不允许HTTP客户端实现用于HTTP CONNECT隧道。
-
Packages