org.apache.http.impl.client

## Class HttpClientBuilder

- java.lang.Object
- - org.apache.http.impl.client.HttpClientBuilder

-     public class HttpClientBuilder
      extends Object

  Builder为`CloseableHttpClient`实例。

  当一个特定组件未被明确设置时，此类将使用其默认实现。 系统属性将配置缺省实现时，当考虑到`useSystemProperties()`方法之前调用称为`build()` 。

  - ssl.TrustManagerFactory.algorithm
  - javax.net.ssl.trustStoreType
  - javax.net.ssl.trustStore中
  - javax.net.ssl.trustStoreProvider
  - javax.net.ssl.trustStorePassword中
  - ssl.KeyManagerFactory.algorithm
  - javax.net.ssl.keyStoreType
  - javax.net.ssl.keyStore
  - javax.net.ssl.keyStoreProvider
  - javax.net.ssl.keyStorePassword
  - https.protocols
  - https.cipherSuites
  - http.proxyHost
  - 把http.proxyPort
  - http.nonProxyHosts
  - http.keepAlive
  - http.maxConnections
  - http.agent

  请注意，此类使用的某些设置可能是互斥的，并且在构建`CloseableHttpClient`实例时可能不适用。

  从以下版本开始：
    4.3

- - ### 构造方法摘要

    构造方法
    Modifier | Constructor and Description
    --- | ---
    `protected` | `HttpClientBuilder()`

  - ### 方法摘要

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `protected void` | `addCloseable(Closeable closeable)` 供内部使用。
    `HttpClientBuilder` | `addInterceptorFirst(HttpRequestInterceptor itcp)` 将该协议拦截器添加到协议处理列表的头部。
    `HttpClientBuilder` | `addInterceptorFirst(HttpResponseInterceptor itcp)` 将该协议拦截器添加到协议处理列表的头部。
    `HttpClientBuilder` | `addInterceptorLast(HttpRequestInterceptor itcp)` 将该协议拦截器添加到协议处理列表的尾部。
    `HttpClientBuilder` | `addInterceptorLast(HttpResponseInterceptor itcp)` 将该协议拦截器添加到协议处理列表的尾部。
    `CloseableHttpClient` | `build()`
    `static HttpClientBuilder` | `create()`
    `protected ClientExecChain` | `createMainExec(HttpRequestExecutor requestExec, HttpClientConnectionManager connManager, ConnectionReuseStrategy reuseStrategy, ConnectionKeepAliveStrategy keepAliveStrategy, HttpProcessor proxyHttpProcessor, AuthenticationStrategy targetAuthStrategy, AuthenticationStrategy proxyAuthStrategy, UserTokenHandler userTokenHandler)` 生成一个`ClientExecChain`的实例，用作主要的exec。
    `protected ClientExecChain` | `decorateMainExec(ClientExecChain mainExec)` 供内部使用。
    `protected ClientExecChain` | `decorateProtocolExec(ClientExecChain protocolExec)` 供内部使用。
    `HttpClientBuilder` | `disableAuthCaching()` 禁用认证方案缓存。
    `HttpClientBuilder` | `disableAutomaticRetries()` 禁用自动请求恢复和重新执行。
    `HttpClientBuilder` | `disableConnectionState()` 禁用连接状态跟踪。
    `HttpClientBuilder` | `disableContentCompression()` 禁用自动内容解压缩。
    `HttpClientBuilder` | `disableCookieManagement()` 禁用状态（cookie）管理。
    `HttpClientBuilder` | `disableRedirectHandling()` 禁用自动重定向处理。
    `HttpClientBuilder` | `evictExpiredConnections()` 使HttpClient的这个实例主动地使用后台线程从连接池中驱逐过期的连接。
    `HttpClientBuilder` | `evictIdleConnections(long maxIdleTime, TimeUnit maxIdleTimeUnit)` 使HttpClient的这个实例主动地使用后台线程从连接池中驱逐空闲连接。
    `HttpClientBuilder` | `evictIdleConnections(Long maxIdleTime, TimeUnit maxIdleTimeUnit)` 已过时。 （4.5）使用`evictIdleConnections(long, TimeUnit)`
    `HttpClientBuilder` | `setBackoffManager(BackoffManager backoffManager)` 分配`BackoffManager`实例。
    `HttpClientBuilder` | `setConnectionBackoffStrategy(ConnectionBackoffStrategy connectionBackoffStrategy)` 分配`ConnectionBackoffStrategy`实例。
    `HttpClientBuilder` | `setConnectionManager(HttpClientConnectionManager connManager)` 分配`HttpClientConnectionManager`实例。
    `HttpClientBuilder` | `setConnectionManagerShared(boolean shared)` 定义连接管理器由多个客户端实例共享。
    `HttpClientBuilder` | `setConnectionReuseStrategy(ConnectionReuseStrategy reuseStrategy)` 分配`ConnectionReuseStrategy`实例。
    `HttpClientBuilder` | `setConnectionTimeToLive(long connTimeToLive, TimeUnit connTimeToLiveTimeUnit)` 设置持久连接的最长生存时间
    `HttpClientBuilder` | `setContentDecoderRegistry(Map<String,InputStreamFactory> contentDecoderMap)` 分配用于自动内容解压缩的`InputStreamFactory`的映射。
    `HttpClientBuilder` | `setDefaultAuthSchemeRegistry(Lookup<AuthSchemeProvider> authSchemeRegistry)` 分配默认的`AuthScheme`注册表，如果在客户端执行上下文中未显式设置，则将用于请求执行。
    `HttpClientBuilder` | `setDefaultConnectionConfig(ConnectionConfig config)` 分配默认值`ConnectionConfig` 。
    `HttpClientBuilder` | `setDefaultCookieSpecRegistry(Lookup<CookieSpecProvider> cookieSpecRegistry)` 分配默认的`CookieSpec`注册表，如果没有在客户端执行上下文中显式设置，这个注册表将用于请求执行。
    `HttpClientBuilder` | `setDefaultCookieStore(CookieStore cookieStore)` 分配默认的`CookieStore`实例，如果在客户端执行上下文中未显式设置，则该实例将用于请求执行。
    `HttpClientBuilder` | `setDefaultCredentialsProvider(CredentialsProvider credentialsProvider)` 分配默认的`CredentialsProvider`实例，如果在客户端执行上下文中未显式设置，则实例将用于请求执行。
    `HttpClientBuilder` | `setDefaultHeaders(Collection<? extends Header> defaultHeaders)` 分配默认请求标头值。
    `HttpClientBuilder` | `setDefaultRequestConfig(RequestConfig config)` 分配默认的`RequestConfig`实例，如果在客户端执行上下文中未显式设置，则该实例将用于请求执行。
    `HttpClientBuilder` | `setDefaultSocketConfig(SocketConfig config)` 分配默认值`SocketConfig` 。
    `HttpClientBuilder` | `setDnsResolver(DnsResolver dnsResolver)` 分配`DnsResolver`实例。
    `HttpClientBuilder` | `setHostnameVerifier(X509HostnameVerifier hostnameVerifier)` 已过时。 （4.4）
    `HttpClientBuilder` | `setHttpProcessor(HttpProcessor httpprocessor)` 分配`HttpProcessor`实例。
    `HttpClientBuilder` | `setKeepAliveStrategy(ConnectionKeepAliveStrategy keepAliveStrategy)` 分配`ConnectionKeepAliveStrategy`实例。
    `HttpClientBuilder` | `setMaxConnPerRoute(int maxConnPerRoute)` 分配每个路由值的最大连接数。
    `HttpClientBuilder` | `setMaxConnTotal(int maxConnTotal)` 分配最大总连接值。
    `HttpClientBuilder` | `setProxy(HttpHost proxy)` 分配默认代理值。
    `HttpClientBuilder` | `setProxyAuthenticationStrategy(AuthenticationStrategy proxyAuthStrategy)` 为代理身份验证分配`AuthenticationStrategy`实例。
    `HttpClientBuilder` | `setPublicSuffixMatcher(PublicSuffixMatcher publicSuffixMatcher)` 分配包含公共后缀匹配器的文件。
    `HttpClientBuilder` | `setRedirectStrategy(RedirectStrategy redirectStrategy)` 分配`RedirectStrategy`实例。
    `HttpClientBuilder` | `setRequestExecutor(HttpRequestExecutor requestExec)` 分配`HttpRequestExecutor`实例。
    `HttpClientBuilder` | `setRetryHandler(HttpRequestRetryHandler retryHandler)` 分配`HttpRequestRetryHandler`实例。
    `HttpClientBuilder` | `setRoutePlanner(HttpRoutePlanner routePlanner)` 分配`HttpRoutePlanner`实例。
    `HttpClientBuilder` | `setSchemePortResolver(SchemePortResolver schemePortResolver)` 分配`SchemePortResolver`实例。
    `HttpClientBuilder` | `setServiceUnavailableRetryStrategy(ServiceUnavailableRetryStrategy serviceUnavailStrategy)` 分配`ServiceUnavailableRetryStrategy`实例。
    `HttpClientBuilder` | `setSslcontext(SSLContext sslcontext)` 已过时。 （4.5）使用`setSSLContext(SSLContext)`
    `HttpClientBuilder` | `setSSLContext(SSLContext sslContext)` 分配`SSLContext`实例。
    `HttpClientBuilder` | `setSSLHostnameVerifier(HostnameVerifier hostnameVerifier)` 分配`HostnameVerifier`实例。
    `HttpClientBuilder` | `setSSLSocketFactory(LayeredConnectionSocketFactory sslSocketFactory)` 分配`LayeredConnectionSocketFactory`实例。
    `HttpClientBuilder` | `setTargetAuthenticationStrategy(AuthenticationStrategy targetAuthStrategy)` 为目标主机认证分配`AuthenticationStrategy`实例。
    `HttpClientBuilder` | `setUserAgent(String userAgent)` 分配 `User-Agent`值。
    `HttpClientBuilder` | `setUserTokenHandler(UserTokenHandler userTokenHandler)` 分配`UserTokenHandler`实例。
    `HttpClientBuilder` | `useSystemProperties()` 在创建和配置默认实现时使用系统属性。

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### 构造方法详细信息

    - #### HttpClientBuilder

          protected HttpClientBuilder()

  - ### 方法详细信息

    - #### create

          public static HttpClientBuilder create()

    - #### setRequestExecutor

          public final HttpClientBuilder setRequestExecutor(HttpRequestExecutor requestExec)

      分配`HttpRequestExecutor`实例。

    - #### setHostnameVerifier

          @Deprecated
          public final HttpClientBuilder setHostnameVerifier(X509HostnameVerifier hostnameVerifier)

      已过时。 （4.4）
      分配`X509HostnameVerifier`实例。

      请注意，该值可以被`setConnectionManager( org.apache.http.conn.HttpClientConnectionManager)`和`setSSLSocketFactory( org.apache.http.conn.socket.LayeredConnectionSocketFactory)`方法覆盖。

    - #### setSSLHostnameVerifier

          public final HttpClientBuilder setSSLHostnameVerifier(HostnameVerifier hostnameVerifier)

      分配`HostnameVerifier`实例。

      请注意，该值可以被`setConnectionManager( org.apache.http.conn.HttpClientConnectionManager)`和`setSSLSocketFactory( org.apache.http.conn.socket.LayeredConnectionSocketFactory)`方法覆盖。

      从以下版本开始：
        4.4

    - #### setPublicSuffixMatcher

          public final HttpClientBuilder setPublicSuffixMatcher(PublicSuffixMatcher publicSuffixMatcher)

      分配包含公共后缀匹配器的文件。 该类的实例可以使用`PublicSuffixMatcherLoader`创建。
      从以下版本开始：
        4.4
      另请参见：
        `PublicSuffixMatcher` ， `PublicSuffixMatcherLoader`

    - #### setSslcontext

          @Deprecated
          public final HttpClientBuilder setSslcontext(SSLContext sslcontext)

      已过时。 （4.5）使用`setSSLContext(SSLContext)`
      分配`SSLContext`实例。

      请注意，该值可以被`setConnectionManager( org.apache.http.conn.HttpClientConnectionManager)`和`setSSLSocketFactory( org.apache.http.conn.socket.LayeredConnectionSocketFactory)`方法覆盖。

    - #### setSSLContext

          public final HttpClientBuilder setSSLContext(SSLContext sslContext)

      分配`SSLContext`实例。

      请注意，这个值可以被`setConnectionManager( org.apache.http.conn.HttpClientConnectionManager)`和`setSSLSocketFactory( org.apache.http.conn.socket.LayeredConnectionSocketFactory)`方法所覆盖。

    - #### setSSLSocketFactory

          public final HttpClientBuilder setSSLSocketFactory(LayeredConnectionSocketFactory sslSocketFactory)

      分配`LayeredConnectionSocketFactory`实例。

      请注意，该值可以被`setConnectionManager( org.apache.http.conn.HttpClientConnectionManager)`方法覆盖。

    - #### setMaxConnTotal

          public final HttpClientBuilder setMaxConnTotal(int maxConnTotal)

      分配最大总连接值。

      请注意，该值可以被`setConnectionManager( org.apache.http.conn.HttpClientConnectionManager)`方法覆盖。

    - #### setMaxConnPerRoute

          public final HttpClientBuilder setMaxConnPerRoute(int maxConnPerRoute)

      分配每个路由值的最大连接数。

      请注意，该值可以被`setConnectionManager( org.apache.http.conn.HttpClientConnectionManager)`方法覆盖。

    - #### setDefaultSocketConfig

          public final HttpClientBuilder setDefaultSocketConfig(SocketConfig config)

      分配默认值`SocketConfig` 。

      请注意，该值可以被`setConnectionManager( org.apache.http.conn.HttpClientConnectionManager)`方法覆盖。

    - #### setDefaultConnectionConfig

          public final HttpClientBuilder setDefaultConnectionConfig(ConnectionConfig config)

      分配默认值`ConnectionConfig` 。

      请注意，该值可以被`setConnectionManager( org.apache.http.conn.HttpClientConnectionManager)`方法覆盖。

    - #### setConnectionTimeToLive

          public final HttpClientBuilder setConnectionTimeToLive(long connTimeToLive,
                                                  TimeUnit connTimeToLiveTimeUnit)

      设置持久连接的最长生存时间

      请注意，该值可以被`setConnectionManager( org.apache.http.conn.HttpClientConnectionManager)`方法覆盖。

      从以下版本开始：
        4.4

    - #### setConnectionManager

          public final HttpClientBuilder setConnectionManager(HttpClientConnectionManager connManager)

      分配`HttpClientConnectionManager`实例。

    - #### setConnectionManagerShared

          public final HttpClientBuilder setConnectionManagerShared(boolean shared)

      定义连接管理器由多个客户端实例共享。

      如果连接管理器是共享的，则其生命周期预期由呼叫者管理，如果客户端关闭，则不会关闭它。

      参数
        `shared` - 定义连接管理器是否可以由多个客户端共享。
      从以下版本开始：
        4.4

    - #### setConnectionReuseStrategy

          public final HttpClientBuilder setConnectionReuseStrategy(ConnectionReuseStrategy reuseStrategy)

      分配`ConnectionReuseStrategy`实例。

    - #### setKeepAliveStrategy

          public final HttpClientBuilder setKeepAliveStrategy(ConnectionKeepAliveStrategy keepAliveStrategy)

      分配`ConnectionKeepAliveStrategy`实例。

    - #### setTargetAuthenticationStrategy

          public final HttpClientBuilder setTargetAuthenticationStrategy(AuthenticationStrategy targetAuthStrategy)

      为目标主机身份验证分配`AuthenticationStrategy`实例。

    - #### setProxyAuthenticationStrategy

          public final HttpClientBuilder setProxyAuthenticationStrategy(AuthenticationStrategy proxyAuthStrategy)

      分配`AuthenticationStrategy`代理身份验证实例。

    - #### setUserTokenHandler

          public final HttpClientBuilder setUserTokenHandler(UserTokenHandler userTokenHandler)

      分配`UserTokenHandler`实例。

      请注意，该值可以被`disableConnectionState()`方法覆盖。

    - #### disableConnectionState

          public final HttpClientBuilder disableConnectionState()

      禁用连接状态跟踪。

    - #### setSchemePortResolver

          public final HttpClientBuilder setSchemePortResolver(SchemePortResolver schemePortResolver)

      分配`SchemePortResolver`实例。

    - #### setUserAgent

          public final HttpClientBuilder setUserAgent(String userAgent)

      分配`User-Agent`值。

      请注意，该值可以被`setHttpProcessor( org.apache.http.protocol.HttpProcessor)`方法覆盖。

    - #### setDefaultHeaders

          public final HttpClientBuilder setDefaultHeaders(Collection<? extends Header> defaultHeaders)

      分配默认请求标头值。

      请注意，该值可以被`setHttpProcessor( org.apache.http.protocol.HttpProcessor)`方法覆盖。

    - #### addInterceptorFirst

          public final HttpClientBuilder addInterceptorFirst(HttpResponseInterceptor itcp)

      将该协议拦截器添加到协议处理列表的头部。

      请注意，该值可以被`setHttpProcessor( org.apache.http.protocol.HttpProcessor)`方法覆盖。

    - #### addInterceptorLast

          public final HttpClientBuilder addInterceptorLast(HttpResponseInterceptor itcp)

      将该协议拦截器添加到协议处理列表的尾部。

      请注意，该值可以被`setHttpProcessor( org.apache.http.protocol.HttpProcessor)`方法覆盖。

    - #### addInterceptorFirst

          public final HttpClientBuilder addInterceptorFirst(HttpRequestInterceptor itcp)

      将该协议拦截器添加到协议处理列表的头部。

      请注意，该值可以被`setHttpProcessor( org.apache.http.protocol.HttpProcessor)`方法覆盖。

    - #### addInterceptorLast

          public final HttpClientBuilder addInterceptorLast(HttpRequestInterceptor itcp)

      将该协议拦截器添加到协议处理列表的尾部。

      请注意，该值可以被`setHttpProcessor( org.apache.http.protocol.HttpProcessor)`方法覆盖。

    - #### disableCookieManagement

          public final HttpClientBuilder disableCookieManagement()

      禁用状态（cookie）管理。

      请注意，该值可以被`setHttpProcessor( org.apache.http.protocol.HttpProcessor)`方法覆盖。

    - #### disableContentCompression

          public final HttpClientBuilder disableContentCompression()

      禁用自动内容解压缩。

      请注意，该值可以被`setHttpProcessor( org.apache.http.protocol.HttpProcessor)`方法覆盖。

    - #### disableAuthCaching

          public final HttpClientBuilder disableAuthCaching()

      禁用认证方案缓存。

      请注意，该值可以被`setHttpProcessor( org.apache.http.protocol.HttpProcessor)`方法覆盖。

    - #### setHttpProcessor

          public final HttpClientBuilder setHttpProcessor(HttpProcessor httpprocessor)

      分配`HttpProcessor`实例。

    - #### setDnsResolver

          public final HttpClientBuilder setDnsResolver(DnsResolver dnsResolver)

      分配`DnsResolver`实例。

      请注意，该值可以被`setConnectionManager(HttpClientConnectionManager)`方法覆盖。

    - #### setRetryHandler

          public final HttpClientBuilder setRetryHandler(HttpRequestRetryHandler retryHandler)

      分配`HttpRequestRetryHandler`实例。

      请注意，该值可以被`disableAutomaticRetries()`方法覆盖。

    - #### disableAutomaticRetries

          public final HttpClientBuilder disableAutomaticRetries()

      禁用自动请求恢复和重新执行。

    - #### setProxy

          public final HttpClientBuilder setProxy(HttpHost proxy)

      分配默认代理值。

      请注意，该值可以被`setRoutePlanner( org.apache.http.conn.routing.HttpRoutePlanner)`方法覆盖。

    - #### setRoutePlanner

          public final HttpClientBuilder setRoutePlanner(HttpRoutePlanner routePlanner)

      分配`HttpRoutePlanner`实例。

    - #### setRedirectStrategy

          public final HttpClientBuilder setRedirectStrategy(RedirectStrategy redirectStrategy)

      分配`RedirectStrategy`实例。

      请注意，该值可以被`disableRedirectHandling()`方法覆盖。

      `

    - #### disableRedirectHandling

          public final HttpClientBuilder disableRedirectHandling()

      禁用自动重定向处理。

    - #### setConnectionBackoffStrategy

          public final HttpClientBuilder setConnectionBackoffStrategy(ConnectionBackoffStrategy connectionBackoffStrategy)

      分配`ConnectionBackoffStrategy`实例。

    - #### setBackoffManager

          public final HttpClientBuilder setBackoffManager(BackoffManager backoffManager)

      分配`BackoffManager`实例。

    - #### setServiceUnavailableRetryStrategy

          public final HttpClientBuilder setServiceUnavailableRetryStrategy(ServiceUnavailableRetryStrategy serviceUnavailStrategy)

      分配`ServiceUnavailableRetryStrategy`实例。

    - #### setDefaultCookieStore

          public final HttpClientBuilder setDefaultCookieStore(CookieStore cookieStore)

      分配默认的`CookieStore`实例，如果在客户端执行上下文中未显式设置，则该实例将用于请求执行。

    - #### setDefaultCredentialsProvider

          public final HttpClientBuilder setDefaultCredentialsProvider(CredentialsProvider credentialsProvider)

      分配默认的`CredentialsProvider`实例，如果在客户端执行上下文中未显式设置，则将用于请求执行。

    - #### setDefaultAuthSchemeRegistry

          public final HttpClientBuilder setDefaultAuthSchemeRegistry(Lookup<AuthSchemeProvider> authSchemeRegistry)

      分配默认的`AuthScheme`注册表，如果在客户端执行上下文中未显式设置，那么它将用于请求执行。

    - #### setDefaultCookieSpecRegistry

          public final HttpClientBuilder setDefaultCookieSpecRegistry(Lookup<CookieSpecProvider> cookieSpecRegistry)

      分配默认的`CookieSpec`注册表，如果在客户端执行上下文中未显式设置，则该注册表将用于请求执行。
      另请参见：
        `CookieSpecRegistries`

    - #### setContentDecoderRegistry

          public final HttpClientBuilder setContentDecoderRegistry(Map<String,InputStreamFactory> contentDecoderMap)

      分配用于自动内容解压缩的`InputStreamFactory`的映射。

    - #### setDefaultRequestConfig

          public final HttpClientBuilder setDefaultRequestConfig(RequestConfig config)

      分配默认的`RequestConfig`实例，如果在客户机执行上下文中未显式设置，则该实例将用于请求执行。

    - #### useSystemProperties

          public final HttpClientBuilder useSystemProperties()

      在创建和配置默认实现时使用系统属性。

    - #### evictExpiredConnections

          public final HttpClientBuilder evictExpiredConnections()

      使HttpClient的这个实例主动地使用后台线程从连接池中驱逐过期的连接。

      为了停止和释放后台线程，必须使用`Closeable.close()`显式关闭HttpClient。

      请注意，如果将HttpClient的实例配置为使用共享连接管理器，则此方法无效。

      请注意，当在EJB容器内创建HttpClient的实例时，可能不使用此方法。

      从以下版本开始：
        4.4
      另请参见：
        `setConnectionManagerShared(boolean)` ， `HttpClientConnectionManager.closeExpiredConnections()`

    - #### evictIdleConnections

          @Deprecated
          public final HttpClientBuilder evictIdleConnections(Long maxIdleTime,
                                                          TimeUnit maxIdleTimeUnit)

      已过时。 （4.5）使用`evictIdleConnections(long, TimeUnit)`
      使HttpClient的这个实例主动地使用后台线程从连接池中驱逐空闲连接。

      必须使用`Closeable.close()`明确关闭HttpClient，以便停止并释放后台线程。

      请注意，如果将HttpClient的实例配置为使用共享连接管理器，则此方法无效。

      请注意，当在EJB容器内创建HttpClient的实例时，可能不使用此方法。

      参数
        `maxIdleTime` - 连接池中保持活动的最长时间持续连接可以保持空闲状态。 不活动期超过此值的连接将被关闭并从泳池中逐出。
        `maxIdleTimeUnit` - 上述参数的时间单位。
      从以下版本开始：
        4.4
      另请参见：
        `setConnectionManagerShared(boolean)` ， `HttpClientConnectionManager.closeExpiredConnections()`

    - #### evictIdleConnections

          public final HttpClientBuilder evictIdleConnections(long maxIdleTime,
                                               TimeUnit maxIdleTimeUnit)

      使HttpClient的这个实例主动地使用后台线程从连接池中驱逐空闲连接。

      为了停止和释放后台线程，必须使用`Closeable.close()`显式关闭HttpClient。

      请注意，如果将HttpClient的实例配置为使用共享连接管理器，则此方法无效。

      请注意，当在EJB容器内创建HttpClient的实例时，可能不使用此方法。

      参数
        `maxIdleTime` - 连接池中保持活动的最长时间持续连接可以保持空闲状态。 不活动期超过此值的连接将被关闭并从泳池中逐出。
        `maxIdleTimeUnit` - 上述参数的时间单位。
      从以下版本开始：
        4.4
      另请参见：
        `setConnectionManagerShared(boolean)` ， `HttpClientConnectionManager.closeExpiredConnections()`

    - #### createMainExec

          protected ClientExecChain createMainExec(HttpRequestExecutor requestExec,
                                       HttpClientConnectionManager connManager,
                                       ConnectionReuseStrategy reuseStrategy,
                                       ConnectionKeepAliveStrategy keepAliveStrategy,
                                       HttpProcessor proxyHttpProcessor,
                                       AuthenticationStrategy targetAuthStrategy,
                                       AuthenticationStrategy proxyAuthStrategy,
                                       UserTokenHandler userTokenHandler)

      生成一个`ClientExecChain`的实例，用作主要的exec。

      默认实现产生`MainClientExec`的实例

      供内部使用。

      从以下版本开始：
        4.4

    - #### decorateMainExec

          protected ClientExecChain decorateMainExec(ClientExecChain mainExec)

      供内部使用。

    - #### decorateProtocolExec

          protected ClientExecChain decorateProtocolExec(ClientExecChain protocolExec)

      供内部使用。

    - #### addCloseable

          protected void addCloseable(Closeable closeable)

      供内部使用。

    - #### build

          public CloseableHttpClient build()

Copyright © 1999–2017 The Apache Software Foundation. All rights reserved.

本帮助文档是使用 《谷歌翻译》翻译，请与英文版配合使用 by--QQ:654638585