- 封闭类:
HttpClient
构建器是通过调用 newBuilder 创建的。每个 setter 方法都会修改构建器的状态并返回相同的实例。构建器不是线程安全的,不应该在没有外部同步的情况下从多个线程同时使用。
- 自从:
- 11
-
字段摘要
字段 -
方法总结
修饰符和类型方法描述authenticator(Authenticator authenticator) 设置用于 HTTP 身份验证的身份验证器。build()返回一个新的HttpClient从这个构建器的当前状态构建。connectTimeout(Duration duration) 设置此客户端的连接超时持续时间。cookieHandler(CookieHandler cookieHandler) 设置 cookie 处理程序。设置用于异步和依赖任务的执行器。followRedirects(HttpClient.Redirect policy) 指定请求是否将自动遵循服务发出的重定向。default HttpClient.BuilderlocalAddress(InetAddress localAddr) 在创建连接以发送请求时将套接字绑定到此本地地址。priority(int priority) 为从该客户端发送的任何 HTTP/2 请求设置默认优先级。proxy(ProxySelector proxySelector) 设置一个ProxySelector。sslContext(SSLContext sslContext) 设置一个SSLContext。sslParameters(SSLParameters sslParameters) 设置一个SSLParameters。version(HttpClient.Version version) 尽可能请求特定的 HTTP 协议版本。
-
字段详细信息
-
NO_PROXY
始终返回Proxy.NO_PROXY暗示直接连接的代理选择器。这是一个方便的对象,可以传递给
proxy(ProxySelector)以构建不使用代理的HttpClient实例。
-
-
方法详情
-
cookieHandler
设置 cookie 处理程序。- 参数:
cookieHandler- cookie 处理程序- 返回:
- 这个建设者
-
connectTimeout
设置此客户端的连接超时持续时间。在需要建立新连接的情况下,如果无法在给定的
duration内建立连接,则HttpClient::send会抛出HttpConnectTimeoutException,或者HttpClient::sendAsync会异常完成并出现HttpConnectTimeoutException。如果不需要建立新连接,例如,如果可以重用先前请求的连接,则此超时持续时间无效。- 参数:
duration- 允许建立底层连接的持续时间- 返回:
- 这个建设者
- 抛出:
IllegalArgumentException- 如果持续时间为非正数
-
sslContext
- 参数:
sslContext- SSLContext- 返回:
- 这个建设者
-
sslParameters
设置一个SSLParameters。如果在 建筑 之前未调用此方法,则新构建的客户端将使用默认的、特定于实现的参数集。
HTTP 客户端实现内部使用的一些参数(例如应用程序协议列表)不应由调用者设置,因为它们可能会被忽略。复制给定对象的内容。
- 参数:
sslParameters- SSL 参数- 返回:
- 这个建设者
-
executor
设置用于异步和依赖任务的执行器。如果在 建筑 之前未调用此方法,则会为每个新建的
HttpClient创建一个默认执行程序。- 实现注意事项:
- 默认执行器使用线程池,带有自定义线程工厂。如果安装了安全管理器,线程工厂会创建在没有权限的访问控制上下文中运行的线程。
- 参数:
executor- 执行者- 返回:
- 这个建设者
-
followRedirects
- 参数:
policy- 重定向策略- 返回:
- 这个建设者
-
version
尽可能请求特定的 HTTP 协议版本。如果在 建筑 之前未调用此方法,则新构建的客户端将更喜欢 HTTP/2 。
如果设置为 HTTP/2 ,那么每个请求都会尝试升级到 HTTP/2。如果升级成功,则对此请求的响应将使用 HTTP/2,并且对同一 原始服务 的所有后续请求和响应都将使用 HTTP/2。如果升级失败,则将使用 HTTP/1.1 处理响应
- 实现注意事项:
- 约束也可能影响协议版本的选择。例如,如果通过代理请求 HTTP/2,如果实现不支持这种模式,则可以使用 HTTP/1.1
- 参数:
version- 请求的 HTTP 协议版本- 返回:
- 这个建设者
-
priority
为从该客户端发送的任何 HTTP/2 请求设置默认优先级。提供的值必须介于1和256(含)之间。- 参数:
priority- 优先级权重- 返回:
- 这个建设者
- 抛出:
IllegalArgumentException- 如果给定的优先级超出范围
-
proxy
设置一个ProxySelector。- API 注意:
ProxySelector::of提供了一个ProxySelector,它对所有请求使用一个代理。系统范围的代理选择器可以通过ProxySelector.getDefault()检索。- 实现注意事项:
-
如果在 建筑 之前未调用此方法,则新构建的客户端将使用 默认代理选择器 ,这通常足以满足客户端应用程序的需求。默认代理选择器支持一组与 代理设置 相关的系统属性。可以通过提供显式代理选择器来禁用此默认行为,例如
NO_PROXY或ProxySelector::of在 建筑 之前返回的代理选择器。 - 参数:
proxySelector- ProxySelector- 返回:
- 这个建设者
-
authenticator
设置用于 HTTP 身份验证的身份验证器。- 参数:
authenticator- 认证器- 返回:
- 这个建设者
-
localAddress
在创建连接以发送请求时将套接字绑定到此本地地址。如果没有设置本地地址或
null传递给此方法,则 HTTP 客户端创建的套接字将绑定到自动分配的套接字地址。HttpClient的常见用法不需要调用此方法。通过此方法设置本地地址仅适用于HttpClient的用户需要特定控制哪个网络接口用于 HTTP 通信的高级用途。此方法的调用者应了解将使用HttpClient的系统的网络配置,并应注意确保传递正确的localAddr。如果不这样做,可能会导致通过HttpClient发送的请求失败。- 实现要求:
-
此方法的默认实现抛出
UnsupportedOperationException。通过HttpClient.newBuilder()获得的Builders 提供了允许设置本地地址的此方法的实现。 - 参数:
localAddr- 套接字的本地地址。可以为空。- 返回:
- 这个建设者
- 抛出:
UnsupportedOperationException- 如果此构建器不支持配置本地地址,或者如果此HttpClient实现不支持传递的localAddr。- 自从:
- 19
-
build
HttpClient build()返回一个新的HttpClient从这个构建器的当前状态构建。- 实现要求:
-
如果
local address是非空地址并且安装了安全管理器,则此方法调用checkListen以检查调用者是否具有绑定到该本地地址的必要权限。 - 返回:
-
一个新的
HttpClient - 抛出:
UncheckedIOException- 如果无法分配实现所需的底层 IO 资源,则可能会抛出。例如,如果实现需要一个Selector,并且由于 缺乏必要的资源 而打开一个失败。SecurityException- 如果安装了安全管理器并且安全管理器的checkListen方法不允许绑定到给定地址。
-