-
- Enclosing class:
- HttpClient
public static interface HttpClient.Builder
建筑师HTTP Clients 。通过调用
newBuilder
创建构建器 。 每个setter方法都会修改构建器的状态并返回相同的实例。 构建器不是线程安全的,不应在没有外部同步的情况下从多个线程同时使用。- 从以下版本开始:
- 11
-
-
字段汇总
字段 变量和类型 字段 描述 static ProxySelector
NO_PROXY
一个代理选择器,始终返回Proxy.NO_PROXY
,表示直接连接。
-
方法摘要
所有方法 实例方法 抽象方法 变量和类型 方法 描述 HttpClient.Builder
authenticator(Authenticator authenticator)
设置用于HTTP身份验证的身份验证器。HttpClient
build()
返回从此构建器的当前状态构建的新HttpClient
。HttpClient.Builder
connectTimeout(Duration duration)
设置此客户端的连接超时持续时间。HttpClient.Builder
cookieHandler(CookieHandler cookieHandler)
设置cookie处理程序。HttpClient.Builder
executor(Executor executor)
设置用于异步和从属任务的执行程序。HttpClient.Builder
followRedirects(HttpClient.Redirect policy)
指定请求是否将自动遵循服务器发出的重定向。HttpClient.Builder
priority(int priority)
设置从此客户端发送的任何HTTP / 2请求的默认优先级。HttpClient.Builder
proxy(ProxySelector proxySelector)
设置ProxySelector
。HttpClient.Builder
sslContext(SSLContext sslContext)
设置SSLContext
。HttpClient.Builder
sslParameters(SSLParameters sslParameters)
设置SSLParameters
。HttpClient.Builder
version(HttpClient.Version version)
尽可能请求特定的HTTP协议版本。
-
-
-
字段详细信息
-
NO_PROXY
static final ProxySelector NO_PROXY
代理选择器始终返回Proxy.NO_PROXY
,表示直接连接。这是一个便利对象,可以传递给
proxy(ProxySelector)
,以构建不使用代理的HttpClient
实例。
-
-
方法详细信息
-
cookieHandler
HttpClient.Builder cookieHandler(CookieHandler cookieHandler)
设置cookie处理程序。- 参数
-
cookieHandler
- cookie处理程序 - 结果
- 这个建设者
-
connectTimeout
HttpClient.Builder connectTimeout(Duration duration)
设置此客户端的连接超时持续时间。在需要建立新连接的情况下,如果在给定的
duration
内无法建立连接,则HttpClient::send
会抛出HttpConnectTimeoutException
,或HttpClient::sendAsync
以HttpConnectTimeoutException
异常完成。 如果不需要建立新连接,例如,如果可以从先前的请求重用连接,则此超时持续时间不起作用。- 参数
-
duration
- 允许建立基础连接的持续时间 - 结果
- 这个建设者
- 异常
-
IllegalArgumentException
- 如果持续时间是非正数
-
sslContext
HttpClient.Builder sslContext(SSLContext sslContext)
设置SSLContext
。如果在building之前未调用此方法,则新构建的客户端将使用default context ,这通常适用于不需要指定协议或需要客户端身份验证的客户端应用程序。
- 参数
-
sslContext
- SSLContext - 结果
- 这个建设者
-
sslParameters
HttpClient.Builder sslParameters(SSLParameters sslParameters)
设置SSLParameters
。如果在building之前未调用此方法,则新构建的客户端将使用默认的,特定于实现的参数集。
HTTP客户端实现内部使用的某些参数(例如应用程序协议列表)不应由调用者设置,因为它们可能会被忽略。 复制给定对象的内容。
- 参数
-
sslParameters
- SSLParameters - 结果
- 这个建设者
-
executor
HttpClient.Builder executor(Executor executor)
- Implementation Note:
- 默认执行程序使用带有自定义线程工厂的线程池。 如果已安装安全管理器,则线程工厂会创建使用没有权限的访问控制上下文运行的线程。
- 参数
-
executor
- 执行人 - 结果
- 这个建设者
-
followRedirects
HttpClient.Builder followRedirects(HttpClient.Redirect policy)
- 参数
-
policy
- 重定向策略 - 结果
- 这个建设者
-
version
HttpClient.Builder version(HttpClient.Version version)
尽可能请求特定的HTTP协议版本。如果在building之前未调用此方法,则新构建的客户端将更喜欢HTTP/2 。
如果设置为HTTP/2 ,则每个请求都将尝试升级到HTTP / 2。 如果升级成功,则对此请求的响应将使用HTTP / 2,并且对同一origin server的所有后续请求和响应将使用HTTP / 2。 如果升级失败,则将使用HTTP / 1.1处理响应
- Implementation Note:
- 约束也可能影响协议版本的选择。 例如,如果通过代理请求HTTP / 2,并且如果实现不支持此模式,则可以使用HTTP / 1.1
- 参数
-
version
- 请求的HTTP协议版本 - 结果
- 这个建设者
-
priority
HttpClient.Builder priority(int priority)
设置从此客户端发送的任何HTTP / 2请求的默认优先级。 提供的值必须介于1
和256
(含)之间。- 参数
-
priority
- 优先权重 - 结果
- 这个建设者
- 异常
-
IllegalArgumentException
- 如果给定的优先级超出范围
-
proxy
HttpClient.Builder proxy(ProxySelector proxySelector)
设置ProxySelector
。- API Note:
-
ProxySelector::of
提供了一个ProxySelector
,它对所有请求使用单个代理。 可以通过ProxySelector.getDefault()
检索系统范围的代理选择器。 - Implementation Note:
-
如果在building之前未调用此方法,则新构建的客户端将使用default proxy selector ,这通常适用于客户端应用程序。
默认代理选择器支持一组与proxy settings相关的系统属性。
可以通过在building之前提供显式代理选择器(例如
NO_PROXY
或ProxySelector::of
返回的代理选择器)来禁用此默认行为。 - 参数
-
proxySelector
- ProxySelector - 结果
- 这个建设者
-
authenticator
HttpClient.Builder authenticator(Authenticator authenticator)
设置用于HTTP身份验证的身份验证器。- 参数
-
authenticator
- 身份验证者 - 结果
- 这个建设者
-
build
HttpClient build()
返回从此构建器的当前状态构建的新HttpClient
。- 结果
-
新的
HttpClient
-
-