org.apache.http.impl.client

## Class HttpClientBuilder

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

- Direct Known Subclasses:
    CachingHttpClientBuilder

      public class HttpClientBuilder
      extends Object

  Builder for `CloseableHttpClient` instances.

  When a particular component is not explicitly set this class will use its default implementation. System properties will be taken into account when configuring the default implementations when `useSystemProperties()` method is called prior to calling `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
  - https.proxyHost
  - https.proxyPort
  - http.nonProxyHosts
  - https.proxyUser
  - http.proxyUser
  - https.proxyPassword
  - http.proxyPassword
  - http.keepAlive
  - http.maxConnections
  - http.agent

  Please note that some settings used by this class can be mutually exclusive and may not apply when building `CloseableHttpClient` instances.

  Since:
    4.3

- - ### Constructor Summary

    Constructors
    Modifier | Constructor and Description
    --- | ---
    `protected` | `HttpClientBuilder()`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `protected void` | `addCloseable(Closeable closeable)` For internal use.
    `HttpClientBuilder` | `addInterceptorFirst(org.apache.http.HttpRequestInterceptor itcp)` Adds this protocol interceptor to the head of the protocol processing list.
    `HttpClientBuilder` | `addInterceptorFirst(org.apache.http.HttpResponseInterceptor itcp)` Adds this protocol interceptor to the head of the protocol processing list.
    `HttpClientBuilder` | `addInterceptorLast(org.apache.http.HttpRequestInterceptor itcp)` Adds this protocol interceptor to the tail of the protocol processing list.
    `HttpClientBuilder` | `addInterceptorLast(org.apache.http.HttpResponseInterceptor itcp)` Adds this protocol interceptor to the tail of the protocol processing list.
    `CloseableHttpClient` | `build()`
    `static HttpClientBuilder` | `create()`
    `protected ClientExecChain` | `createMainExec(org.apache.http.protocol.HttpRequestExecutor requestExec, HttpClientConnectionManager connManager, org.apache.http.ConnectionReuseStrategy reuseStrategy, ConnectionKeepAliveStrategy keepAliveStrategy, org.apache.http.protocol.HttpProcessor proxyHttpProcessor, AuthenticationStrategy targetAuthStrategy, AuthenticationStrategy proxyAuthStrategy, UserTokenHandler userTokenHandler)` Produces an instance of `ClientExecChain` to be used as a main exec.
    `protected ClientExecChain` | `decorateMainExec(ClientExecChain mainExec)` For internal use.
    `protected ClientExecChain` | `decorateProtocolExec(ClientExecChain protocolExec)` For internal use.
    `HttpClientBuilder` | `disableAuthCaching()` Disables authentication scheme caching.
    `HttpClientBuilder` | `disableAutomaticRetries()` Disables automatic request recovery and re-execution.
    `HttpClientBuilder` | `disableConnectionState()` Disables connection state tracking.
    `HttpClientBuilder` | `disableContentCompression()` Disables automatic content decompression.
    `HttpClientBuilder` | `disableCookieManagement()` Disables state (cookie) management.
    `HttpClientBuilder` | `disableDefaultUserAgent()` Disables the default user agent set by this builder if none has been provided by the user.
    `HttpClientBuilder` | `disableRedirectHandling()` Disables automatic redirect handling.
    `HttpClientBuilder` | `evictExpiredConnections()` Makes this instance of HttpClient proactively evict expired connections from the connection pool using a background thread.
    `HttpClientBuilder` | `evictIdleConnections(long maxIdleTime, TimeUnit maxIdleTimeUnit)` Makes this instance of HttpClient proactively evict idle connections from the connection pool using a background thread.
    `HttpClientBuilder` | `evictIdleConnections(Long maxIdleTime, TimeUnit maxIdleTimeUnit)` Deprecated. (4.5) use `evictIdleConnections(long, TimeUnit)`
    `HttpClientBuilder` | `setBackoffManager(BackoffManager backoffManager)` Assigns `BackoffManager` instance.
    `HttpClientBuilder` | `setConnectionBackoffStrategy(ConnectionBackoffStrategy connectionBackoffStrategy)` Assigns `ConnectionBackoffStrategy` instance.
    `HttpClientBuilder` | `setConnectionManager(HttpClientConnectionManager connManager)` Assigns `HttpClientConnectionManager` instance.
    `HttpClientBuilder` | `setConnectionManagerShared(boolean shared)` Defines the connection manager is to be shared by multiple client instances.
    `HttpClientBuilder` | `setConnectionReuseStrategy(org.apache.http.ConnectionReuseStrategy reuseStrategy)` Assigns `ConnectionReuseStrategy` instance.
    `HttpClientBuilder` | `setConnectionTimeToLive(long connTimeToLive, TimeUnit connTimeToLiveTimeUnit)` Sets maximum time to live for persistent connections
    `HttpClientBuilder` | `setContentDecoderRegistry(Map<String,InputStreamFactory> contentDecoderMap)` Assigns a map of `InputStreamFactory`s to be used for automatic content decompression.
    `HttpClientBuilder` | `setDefaultAuthSchemeRegistry(org.apache.http.config.Lookup<AuthSchemeProvider> authSchemeRegistry)` Assigns default `AuthScheme` registry which will be used for request execution if not explicitly set in the client execution context.
    `HttpClientBuilder` | `setDefaultConnectionConfig(org.apache.http.config.ConnectionConfig config)` Assigns default `ConnectionConfig`.
    `HttpClientBuilder` | `setDefaultCookieSpecRegistry(org.apache.http.config.Lookup<CookieSpecProvider> cookieSpecRegistry)` Assigns default `CookieSpec` registry which will be used for request execution if not explicitly set in the client execution context.
    `HttpClientBuilder` | `setDefaultCookieStore(CookieStore cookieStore)` Assigns default `CookieStore` instance which will be used for request execution if not explicitly set in the client execution context.
    `HttpClientBuilder` | `setDefaultCredentialsProvider(CredentialsProvider credentialsProvider)` Assigns default `CredentialsProvider` instance which will be used for request execution if not explicitly set in the client execution context.
    `HttpClientBuilder` | `setDefaultHeaders(Collection<? extends org.apache.http.Header> defaultHeaders)` Assigns default request header values.
    `HttpClientBuilder` | `setDefaultRequestConfig(RequestConfig config)` Assigns default `RequestConfig` instance which will be used for request execution if not explicitly set in the client execution context.
    `HttpClientBuilder` | `setDefaultSocketConfig(org.apache.http.config.SocketConfig config)` Assigns default `SocketConfig`.
    `HttpClientBuilder` | `setDnsResolver(DnsResolver dnsResolver)` Assigns `DnsResolver` instance.
    `HttpClientBuilder` | `setHostnameVerifier(X509HostnameVerifier hostnameVerifier)` Deprecated. (4.4)
    `HttpClientBuilder` | `setHttpProcessor(org.apache.http.protocol.HttpProcessor httpprocessor)` Assigns `HttpProcessor` instance.
    `HttpClientBuilder` | `setKeepAliveStrategy(ConnectionKeepAliveStrategy keepAliveStrategy)` Assigns `ConnectionKeepAliveStrategy` instance.
    `HttpClientBuilder` | `setMaxConnPerRoute(int maxConnPerRoute)` Assigns maximum connection per route value.
    `HttpClientBuilder` | `setMaxConnTotal(int maxConnTotal)` Assigns maximum total connection value.
    `HttpClientBuilder` | `setProxy(org.apache.http.HttpHost proxy)` Assigns default proxy value.
    `HttpClientBuilder` | `setProxyAuthenticationStrategy(AuthenticationStrategy proxyAuthStrategy)` Assigns `AuthenticationStrategy` instance for proxy authentication.
    `HttpClientBuilder` | `setPublicSuffixMatcher(PublicSuffixMatcher publicSuffixMatcher)` Assigns file containing public suffix matcher.
    `HttpClientBuilder` | `setRedirectStrategy(RedirectStrategy redirectStrategy)` Assigns `RedirectStrategy` instance.
    `HttpClientBuilder` | `setRequestExecutor(org.apache.http.protocol.HttpRequestExecutor requestExec)` Assigns `HttpRequestExecutor` instance.
    `HttpClientBuilder` | `setRetryHandler(HttpRequestRetryHandler retryHandler)` Assigns `HttpRequestRetryHandler` instance.
    `HttpClientBuilder` | `setRoutePlanner(HttpRoutePlanner routePlanner)` Assigns `HttpRoutePlanner` instance.
    `HttpClientBuilder` | `setSchemePortResolver(SchemePortResolver schemePortResolver)` Assigns `SchemePortResolver` instance.
    `HttpClientBuilder` | `setServiceUnavailableRetryStrategy(ServiceUnavailableRetryStrategy serviceUnavailStrategy)` Assigns `ServiceUnavailableRetryStrategy` instance.
    `HttpClientBuilder` | `setSslcontext(SSLContext sslcontext)` Deprecated. (4.5) use `setSSLContext(SSLContext)`
    `HttpClientBuilder` | `setSSLContext(SSLContext sslContext)` Assigns `SSLContext` instance.
    `HttpClientBuilder` | `setSSLHostnameVerifier(HostnameVerifier hostnameVerifier)` Assigns `HostnameVerifier` instance.
    `HttpClientBuilder` | `setSSLSocketFactory(LayeredConnectionSocketFactory sslSocketFactory)` Assigns `LayeredConnectionSocketFactory` instance.
    `HttpClientBuilder` | `setTargetAuthenticationStrategy(AuthenticationStrategy targetAuthStrategy)` Assigns `AuthenticationStrategy` instance for target host authentication.
    `HttpClientBuilder` | `setUserAgent(String userAgent)` Assigns `User-Agent` value.
    `HttpClientBuilder` | `setUserTokenHandler(UserTokenHandler userTokenHandler)` Assigns `UserTokenHandler` instance.
    `HttpClientBuilder` | `useSystemProperties()` Use system properties when creating and configuring default implementations.

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

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

- - ### Constructor Detail

    - #### HttpClientBuilder

          protected HttpClientBuilder()

  - ### Method Detail

    - #### create

          public static HttpClientBuilder create()

    - #### setRequestExecutor

          public final HttpClientBuilder setRequestExecutor(org.apache.http.protocol.HttpRequestExecutor requestExec)

      Assigns `HttpRequestExecutor` instance.

    - #### setHostnameVerifier

          @Deprecated
          public final HttpClientBuilder setHostnameVerifier(X509HostnameVerifier hostnameVerifier)

      Deprecated. (4.4)
      Assigns `X509HostnameVerifier` instance.

      Please note this value can be overridden by the `setConnectionManager( org.apache.http.conn.HttpClientConnectionManager)` and the `setSSLSocketFactory( org.apache.http.conn.socket.LayeredConnectionSocketFactory)` methods.

    - #### setSSLHostnameVerifier

          public final HttpClientBuilder setSSLHostnameVerifier(HostnameVerifier hostnameVerifier)

      Assigns `HostnameVerifier` instance.

      Please note this value can be overridden by the `setConnectionManager( org.apache.http.conn.HttpClientConnectionManager)` and the `setSSLSocketFactory( org.apache.http.conn.socket.LayeredConnectionSocketFactory)` methods.

      Since:
        4.4

    - #### setPublicSuffixMatcher

          public final HttpClientBuilder setPublicSuffixMatcher(PublicSuffixMatcher publicSuffixMatcher)

      Assigns file containing public suffix matcher. Instances of this class can be created with `PublicSuffixMatcherLoader`.
      Since:
        4.4
      See Also:
        `PublicSuffixMatcher`, `PublicSuffixMatcherLoader`

    - #### setSslcontext

          @Deprecated
          public final HttpClientBuilder setSslcontext(SSLContext sslcontext)

      Deprecated. (4.5) use `setSSLContext(SSLContext)`
      Assigns `SSLContext` instance.

      Please note this value can be overridden by the `setConnectionManager( org.apache.http.conn.HttpClientConnectionManager)` and the `setSSLSocketFactory( org.apache.http.conn.socket.LayeredConnectionSocketFactory)` methods.

    - #### setSSLContext

          public final HttpClientBuilder setSSLContext(SSLContext sslContext)

      Assigns `SSLContext` instance.

      Please note this value can be overridden by the `setConnectionManager( org.apache.http.conn.HttpClientConnectionManager)` and the `setSSLSocketFactory( org.apache.http.conn.socket.LayeredConnectionSocketFactory)` methods.

    - #### setSSLSocketFactory

          public final HttpClientBuilder setSSLSocketFactory(LayeredConnectionSocketFactory sslSocketFactory)

      Assigns `LayeredConnectionSocketFactory` instance.

      Please note this value can be overridden by the `setConnectionManager( org.apache.http.conn.HttpClientConnectionManager)` method.

    - #### setMaxConnTotal

          public final HttpClientBuilder setMaxConnTotal(int maxConnTotal)

      Assigns maximum total connection value.

      Please note this value can be overridden by the `setConnectionManager( org.apache.http.conn.HttpClientConnectionManager)` method.

    - #### setMaxConnPerRoute

          public final HttpClientBuilder setMaxConnPerRoute(int maxConnPerRoute)

      Assigns maximum connection per route value.

      Please note this value can be overridden by the `setConnectionManager( org.apache.http.conn.HttpClientConnectionManager)` method.

    - #### setDefaultSocketConfig

          public final HttpClientBuilder setDefaultSocketConfig(org.apache.http.config.SocketConfig config)

      Assigns default `SocketConfig`.

      Please note this value can be overridden by the `setConnectionManager( org.apache.http.conn.HttpClientConnectionManager)` method.

    - #### setDefaultConnectionConfig

          public final HttpClientBuilder setDefaultConnectionConfig(org.apache.http.config.ConnectionConfig config)

      Assigns default `ConnectionConfig`.

      Please note this value can be overridden by the `setConnectionManager( org.apache.http.conn.HttpClientConnectionManager)` method.

    - #### setConnectionTimeToLive

          public final HttpClientBuilder setConnectionTimeToLive(long connTimeToLive,
                                                  TimeUnit connTimeToLiveTimeUnit)

      Sets maximum time to live for persistent connections

      Please note this value can be overridden by the `setConnectionManager( org.apache.http.conn.HttpClientConnectionManager)` method.

      Since:
        4.4

    - #### setConnectionManager

          public final HttpClientBuilder setConnectionManager(HttpClientConnectionManager connManager)

      Assigns `HttpClientConnectionManager` instance.

    - #### setConnectionManagerShared

          public final HttpClientBuilder setConnectionManagerShared(boolean shared)

      Defines the connection manager is to be shared by multiple client instances.

      If the connection manager is shared its life-cycle is expected to be managed by the caller and it will not be shut down if the client is closed.

      Parameters:
        `shared` - defines whether or not the connection manager can be shared by multiple clients.
      Since:
        4.4

    - #### setConnectionReuseStrategy

          public final HttpClientBuilder setConnectionReuseStrategy(org.apache.http.ConnectionReuseStrategy reuseStrategy)

      Assigns `ConnectionReuseStrategy` instance.

    - #### setKeepAliveStrategy

          public final HttpClientBuilder setKeepAliveStrategy(ConnectionKeepAliveStrategy keepAliveStrategy)

      Assigns `ConnectionKeepAliveStrategy` instance.

    - #### setTargetAuthenticationStrategy

          public final HttpClientBuilder setTargetAuthenticationStrategy(AuthenticationStrategy targetAuthStrategy)

      Assigns `AuthenticationStrategy` instance for target host authentication.

    - #### setProxyAuthenticationStrategy

          public final HttpClientBuilder setProxyAuthenticationStrategy(AuthenticationStrategy proxyAuthStrategy)

      Assigns `AuthenticationStrategy` instance for proxy authentication.

    - #### setUserTokenHandler

          public final HttpClientBuilder setUserTokenHandler(UserTokenHandler userTokenHandler)

      Assigns `UserTokenHandler` instance.

      Please note this value can be overridden by the `disableConnectionState()` method.

    - #### disableConnectionState

          public final HttpClientBuilder disableConnectionState()

      Disables connection state tracking.

    - #### setSchemePortResolver

          public final HttpClientBuilder setSchemePortResolver(SchemePortResolver schemePortResolver)

      Assigns `SchemePortResolver` instance.

    - #### setUserAgent

          public final HttpClientBuilder setUserAgent(String userAgent)

      Assigns `User-Agent` value.

      Please note this value can be overridden by the `setHttpProcessor( org.apache.http.protocol.HttpProcessor)` method.

    - #### setDefaultHeaders

          public final HttpClientBuilder setDefaultHeaders(Collection<? extends org.apache.http.Header> defaultHeaders)

      Assigns default request header values.

      Please note this value can be overridden by the `setHttpProcessor( org.apache.http.protocol.HttpProcessor)` method.

    - #### addInterceptorFirst

          public final HttpClientBuilder addInterceptorFirst(org.apache.http.HttpResponseInterceptor itcp)

      Adds this protocol interceptor to the head of the protocol processing list.

      Please note this value can be overridden by the `setHttpProcessor( org.apache.http.protocol.HttpProcessor)` method.

    - #### addInterceptorLast

          public final HttpClientBuilder addInterceptorLast(org.apache.http.HttpResponseInterceptor itcp)

      Adds this protocol interceptor to the tail of the protocol processing list.

      Please note this value can be overridden by the `setHttpProcessor( org.apache.http.protocol.HttpProcessor)` method.

    - #### addInterceptorFirst

          public final HttpClientBuilder addInterceptorFirst(org.apache.http.HttpRequestInterceptor itcp)

      Adds this protocol interceptor to the head of the protocol processing list.

      Please note this value can be overridden by the `setHttpProcessor( org.apache.http.protocol.HttpProcessor)` method.

    - #### addInterceptorLast

          public final HttpClientBuilder addInterceptorLast(org.apache.http.HttpRequestInterceptor itcp)

      Adds this protocol interceptor to the tail of the protocol processing list.

      Please note this value can be overridden by the `setHttpProcessor( org.apache.http.protocol.HttpProcessor)` method.

    - #### disableCookieManagement

          public final HttpClientBuilder disableCookieManagement()

      Disables state (cookie) management.

      Please note this value can be overridden by the `setHttpProcessor( org.apache.http.protocol.HttpProcessor)` method.

    - #### disableContentCompression

          public final HttpClientBuilder disableContentCompression()

      Disables automatic content decompression.

      Please note this value can be overridden by the `setHttpProcessor( org.apache.http.protocol.HttpProcessor)` method.

    - #### disableAuthCaching

          public final HttpClientBuilder disableAuthCaching()

      Disables authentication scheme caching.

      Please note this value can be overridden by the `setHttpProcessor( org.apache.http.protocol.HttpProcessor)` method.

    - #### setHttpProcessor

          public final HttpClientBuilder setHttpProcessor(org.apache.http.protocol.HttpProcessor httpprocessor)

      Assigns `HttpProcessor` instance.

    - #### setDnsResolver

          public final HttpClientBuilder setDnsResolver(DnsResolver dnsResolver)

      Assigns `DnsResolver` instance.

      Please note this value can be overridden by the `setConnectionManager(HttpClientConnectionManager)` method.

    - #### setRetryHandler

          public final HttpClientBuilder setRetryHandler(HttpRequestRetryHandler retryHandler)

      Assigns `HttpRequestRetryHandler` instance.

      Please note this value can be overridden by the `disableAutomaticRetries()` method.

    - #### disableAutomaticRetries

          public final HttpClientBuilder disableAutomaticRetries()

      Disables automatic request recovery and re-execution.

    - #### setProxy

          public final HttpClientBuilder setProxy(org.apache.http.HttpHost proxy)

      Assigns default proxy value.

      Please note this value can be overridden by the `setRoutePlanner( org.apache.http.conn.routing.HttpRoutePlanner)` method.

    - #### setRoutePlanner

          public final HttpClientBuilder setRoutePlanner(HttpRoutePlanner routePlanner)

      Assigns `HttpRoutePlanner` instance.

    - #### setRedirectStrategy

          public final HttpClientBuilder setRedirectStrategy(RedirectStrategy redirectStrategy)

      Assigns `RedirectStrategy` instance.

      Please note this value can be overridden by the `disableRedirectHandling()` method.

      `

    - #### disableRedirectHandling

          public final HttpClientBuilder disableRedirectHandling()

      Disables automatic redirect handling.

    - #### setConnectionBackoffStrategy

          public final HttpClientBuilder setConnectionBackoffStrategy(ConnectionBackoffStrategy connectionBackoffStrategy)

      Assigns `ConnectionBackoffStrategy` instance.

    - #### setBackoffManager

          public final HttpClientBuilder setBackoffManager(BackoffManager backoffManager)

      Assigns `BackoffManager` instance.

    - #### setServiceUnavailableRetryStrategy

          public final HttpClientBuilder setServiceUnavailableRetryStrategy(ServiceUnavailableRetryStrategy serviceUnavailStrategy)

      Assigns `ServiceUnavailableRetryStrategy` instance.

    - #### setDefaultCookieStore

          public final HttpClientBuilder setDefaultCookieStore(CookieStore cookieStore)

      Assigns default `CookieStore` instance which will be used for request execution if not explicitly set in the client execution context.

    - #### setDefaultCredentialsProvider

          public final HttpClientBuilder setDefaultCredentialsProvider(CredentialsProvider credentialsProvider)

      Assigns default `CredentialsProvider` instance which will be used for request execution if not explicitly set in the client execution context.

    - #### setDefaultAuthSchemeRegistry

          public final HttpClientBuilder setDefaultAuthSchemeRegistry(org.apache.http.config.Lookup<AuthSchemeProvider> authSchemeRegistry)

      Assigns default `AuthScheme` registry which will be used for request execution if not explicitly set in the client execution context.

    - #### setDefaultCookieSpecRegistry

          public final HttpClientBuilder setDefaultCookieSpecRegistry(org.apache.http.config.Lookup<CookieSpecProvider> cookieSpecRegistry)

      Assigns default `CookieSpec` registry which will be used for request execution if not explicitly set in the client execution context.
      See Also:
        `CookieSpecRegistries`

    - #### setContentDecoderRegistry

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

      Assigns a map of `InputStreamFactory`s to be used for automatic content decompression.

    - #### setDefaultRequestConfig

          public final HttpClientBuilder setDefaultRequestConfig(RequestConfig config)

      Assigns default `RequestConfig` instance which will be used for request execution if not explicitly set in the client execution context.

    - #### useSystemProperties

          public final HttpClientBuilder useSystemProperties()

      Use system properties when creating and configuring default implementations.

    - #### evictExpiredConnections

          public final HttpClientBuilder evictExpiredConnections()

      Makes this instance of HttpClient proactively evict expired connections from the connection pool using a background thread.

      One MUST explicitly close HttpClient with `Closeable.close()` in order to stop and release the background thread.

      Please note this method has no effect if the instance of HttpClient is configuted to use a shared connection manager.

      Please note this method may not be used when the instance of HttpClient is created inside an EJB container.

      Since:
        4.4
      See Also:
        `setConnectionManagerShared(boolean)`, `HttpClientConnectionManager.closeExpiredConnections()`

    - #### evictIdleConnections

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

      Deprecated. (4.5) use `evictIdleConnections(long, TimeUnit)`
      Makes this instance of HttpClient proactively evict idle connections from the connection pool using a background thread.

      One MUST explicitly close HttpClient with `Closeable.close()` in order to stop and release the background thread.

      Please note this method has no effect if the instance of HttpClient is configuted to use a shared connection manager.

      Please note this method may not be used when the instance of HttpClient is created inside an EJB container.

      Parameters:
        `maxIdleTime` - maximum time persistent connections can stay idle while kept alive in the connection pool. Connections whose inactivity period exceeds this value will get closed and evicted from the pool.
        `maxIdleTimeUnit` - time unit for the above parameter.
      Since:
        4.4
      See Also:
        `setConnectionManagerShared(boolean)`, `HttpClientConnectionManager.closeExpiredConnections()`

    - #### evictIdleConnections

          public final HttpClientBuilder evictIdleConnections(long maxIdleTime,
                                               TimeUnit maxIdleTimeUnit)

      Makes this instance of HttpClient proactively evict idle connections from the connection pool using a background thread.

      One MUST explicitly close HttpClient with `Closeable.close()` in order to stop and release the background thread.

      Please note this method has no effect if the instance of HttpClient is configuted to use a shared connection manager.

      Please note this method may not be used when the instance of HttpClient is created inside an EJB container.

      Parameters:
        `maxIdleTime` - maximum time persistent connections can stay idle while kept alive in the connection pool. Connections whose inactivity period exceeds this value will get closed and evicted from the pool.
        `maxIdleTimeUnit` - time unit for the above parameter.
      Since:
        4.4
      See Also:
        `setConnectionManagerShared(boolean)`, `HttpClientConnectionManager.closeExpiredConnections()`

    - #### disableDefaultUserAgent

          public final HttpClientBuilder disableDefaultUserAgent()

      Disables the default user agent set by this builder if none has been provided by the user.
      Since:
        4.5.7

    - #### createMainExec

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

      Produces an instance of `ClientExecChain` to be used as a main exec.

      Default implementation produces an instance of `MainClientExec`

      For internal use.

      Since:
        4.4

    - #### decorateMainExec

          protected ClientExecChain decorateMainExec(ClientExecChain mainExec)

      For internal use.

    - #### decorateProtocolExec

          protected ClientExecChain decorateProtocolExec(ClientExecChain protocolExec)

      For internal use.

    - #### addCloseable

          protected void addCloseable(Closeable closeable)

      For internal use.

    - #### build

          public CloseableHttpClient build()

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