模块 java.net.http

接口 HttpClient.Builder

封闭类:
HttpClient

public static interface HttpClient.Builder
HTTP 客户端 的建设者。

构建器是通过调用 newBuilder 创建的。每个 setter 方法都会修改构建器的状态并返回相同的实例。构建器不是线程安全的,不应该在没有外部同步的情况下从多个线程同时使用。

自从:
11
  • 字段详细信息

  • 方法详情

    • 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

      如果在 建筑 之前未调用此方法,则新建客户端将使用 默认上下文 ,这通常适用于不需要指定协议或不需要客户端身份验证的客户端应用程序。

      参数:
      sslContext - SSLContext
      返回:
      这个建设者
    • sslParameters

      HttpClient.Builder  sslParameters(SSLParameters  sslParameters)
      设置一个 SSLParameters

      如果在 建筑 之前未调用此方法,则新构建的客户端将使用默认的、特定于实现的参数集。

      HTTP 客户端实现内部使用的一些参数(例如应用程序协议列表)不应由调用者设置,因为它们可能会被忽略。复制给定对象的内容。

      参数:
      sslParameters - SSL 参数
      返回:
      这个建设者
    • executor

      HttpClient.Builder  executor(Executor  executor)
      设置用于异步和依赖任务的执行器。

      如果在 建筑 之前未调用此方法,则会为每个新建的 HttpClient 创建一个默认执行程序。

      实现注意事项:
      默认执行器使用线程池,带有自定义线程工厂。如果安装了安全管理器,线程工厂会创建在没有权限的访问控制上下文中运行的线程。
      参数:
      executor - 执行者
      返回:
      这个建设者
    • followRedirects

      HttpClient.Builder  followRedirects(HttpClient.Redirect  policy)
      指定请求是否将自动遵循服务发出的重定向。

      如果在 建筑 之前未调用此方法,则新建客户端将使用默认重定向策略 NEVER

      参数:
      policy - 重定向策略
      返回:
      这个建设者
    • version

      尽可能请求特定的 HTTP 协议版本。

      如果在 建筑 之前未调用此方法,则新构建的客户端将更喜欢 HTTP/2

      如果设置为 HTTP/2 ,那么每个请求都会尝试升级到 HTTP/2。如果升级成功,则对此请求的响应将使用 HTTP/2,并且对同一 原始服务 的所有后续请求和响应都将使用 HTTP/2。如果升级失败,则将使用 HTTP/1.1 处理响应

      实现注意事项:
      约束也可能影响协议版本的选择。例如,如果通过代理请求 HTTP/2,如果实现不支持这种模式,则可以使用 HTTP/1.1
      参数:
      version - 请求的 HTTP 协议版本
      返回:
      这个建设者
    • priority

      HttpClient.Builder  priority(int priority)
      为从该客户端发送的任何 HTTP/2 请求设置默认优先级。提供的值必须介于 1256(含)之间。
      参数:
      priority - 优先级权重
      返回:
      这个建设者
      抛出:
      IllegalArgumentException - 如果给定的优先级超出范围
    • proxy

      HttpClient.Builder  proxy(ProxySelector  proxySelector)
      设置一个 ProxySelector
      API 注意:
      ProxySelector::of 提供了一个 ProxySelector,它对所有请求使用一个代理。系统范围的代理选择器可以通过 ProxySelector.getDefault() 检索。
      实现注意事项:
      如果在 建筑 之前未调用此方法,则新构建的客户端将使用 默认代理选择器 ,这通常足以满足客户端应用程序的需求。默认代理选择器支持一组与 代理设置 相关的系统属性。可以通过提供显式代理选择器来禁用此默认行为,例如 NO_PROXY ProxySelector::of 建筑 之前返回的代理选择器。
      参数:
      proxySelector - ProxySelector
      返回:
      这个建设者
    • authenticator

      HttpClient.Builder  authenticator(Authenticator  authenticator)
      设置用于 HTTP 身份验证的身份验证器。
      参数:
      authenticator - 认证器
      返回:
      这个建设者
    • localAddress

      default HttpClient.Builder  localAddress(InetAddress  localAddr)
      在创建连接以发送请求时将套接字绑定到此本地地址。

      如果没有设置本地地址或null 传递给此方法,则 HTTP 客户端创建的套接字将绑定到自动分配的套接字地址。

      HttpClient 的常见用法不需要调用此方法。通过此方法设置本地地址仅适用于 HttpClient 的用户需要特定控制哪个网络接口用于 HTTP 通信的高级用途。此方法的调用者应了解将使用 HttpClient 的系统的网络配置,并应注意确保传递正确的 localAddr。如果不这样做,可能会导致通过 HttpClient 发送的请求失败。

      实现要求:
      此方法的默认实现抛出 UnsupportedOperationException 。通过 HttpClient.newBuilder() 获得的 Builder s 提供了允许设置本地地址的此方法的实现。
      参数:
      localAddr - 套接字的本地地址。可以为空。
      返回:
      这个建设者
      抛出:
      UnsupportedOperationException - 如果此构建器不支持配置本地地址,或者如果此 HttpClient 实现不支持传递的 localAddr
      自从:
      19
    • build

      HttpClient  build()
      返回一个新的 HttpClient 从这个构建器的当前状态构建。
      实现要求:
      如果 local address 是非空地址并且安装了安全管理器,则此方法调用 checkListen 以检查调用者是否具有绑定到该本地地址的必要权限。
      返回:
      一个新的HttpClient
      抛出:
      UncheckedIOException - 如果无法分配实现所需的底层 IO 资源,则可能会抛出。例如,如果实现需要一个 Selector ,并且由于 缺乏必要的资源 而打开一个失败。
      SecurityException - 如果安装了安全管理器并且安全管理器的 checkListen 方法不允许绑定到给定地址。