Class HttpClientBuilder
- java.lang.Object
 - 
- org.apache.http.impl.client.HttpClientBuilder
 
 
- 
- Direct Known Subclasses:
 CachingHttpClientBuilder
public class HttpClientBuilder extends java.lang.ObjectBuilder forCloseableHttpClientinstances.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 callingbuild().- 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
 - 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
CloseableHttpClientinstances.- Since:
 - 4.3
 
 
- 
- 
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description HttpClientBuilderaddInterceptorFirst(HttpRequestInterceptor itcp)Adds this protocol interceptor to the head of the protocol processing list.HttpClientBuilderaddInterceptorFirst(HttpResponseInterceptor itcp)Adds this protocol interceptor to the head of the protocol processing list.HttpClientBuilderaddInterceptorLast(HttpRequestInterceptor itcp)Adds this protocol interceptor to the tail of the protocol processing list.HttpClientBuilderaddInterceptorLast(HttpResponseInterceptor itcp)Adds this protocol interceptor to the tail of the protocol processing list.CloseableHttpClientbuild()static HttpClientBuildercreate()HttpClientBuilderdisableAuthCaching()Disables authentication scheme caching.HttpClientBuilderdisableAutomaticRetries()Disables automatic request recovery and re-execution.HttpClientBuilderdisableConnectionState()Disables connection state tracking.HttpClientBuilderdisableContentCompression()Disables automatic content decompression.HttpClientBuilderdisableCookieManagement()Disables state (cookie) management.HttpClientBuilderdisableDefaultUserAgent()Disables the default user agent set by this builder if none has been provided by the user.HttpClientBuilderdisableRedirectHandling()Disables automatic redirect handling.HttpClientBuilderevictExpiredConnections()Makes this instance of HttpClient proactively evict expired connections from the connection pool using a background thread.HttpClientBuilderevictIdleConnections(long maxIdleTime, java.util.concurrent.TimeUnit maxIdleTimeUnit)Makes this instance of HttpClient proactively evict idle connections from the connection pool using a background thread.HttpClientBuilderevictIdleConnections(java.lang.Long maxIdleTime, java.util.concurrent.TimeUnit maxIdleTimeUnit)Deprecated.(4.5) useevictIdleConnections(long, TimeUnit)HttpClientBuildersetBackoffManager(BackoffManager backoffManager)AssignsBackoffManagerinstance.HttpClientBuildersetConnectionBackoffStrategy(ConnectionBackoffStrategy connectionBackoffStrategy)AssignsConnectionBackoffStrategyinstance.HttpClientBuildersetConnectionManager(HttpClientConnectionManager connManager)AssignsHttpClientConnectionManagerinstance.HttpClientBuildersetConnectionManagerShared(boolean shared)Defines the connection manager is to be shared by multiple client instances.HttpClientBuildersetConnectionReuseStrategy(ConnectionReuseStrategy reuseStrategy)AssignsConnectionReuseStrategyinstance.HttpClientBuildersetConnectionTimeToLive(long connTimeToLive, java.util.concurrent.TimeUnit connTimeToLiveTimeUnit)Sets maximum time to live for persistent connectionsHttpClientBuildersetContentDecoderRegistry(java.util.Map<java.lang.String,InputStreamFactory> contentDecoderMap)Assigns a map ofInputStreamFactorys to be used for automatic content decompression.HttpClientBuildersetDefaultAuthSchemeRegistry(Lookup<AuthSchemeProvider> authSchemeRegistry)Assigns defaultAuthSchemeregistry which will be used for request execution if not explicitly set in the client execution context.HttpClientBuildersetDefaultConnectionConfig(ConnectionConfig config)Assigns defaultConnectionConfig.HttpClientBuildersetDefaultCookieSpecRegistry(Lookup<CookieSpecProvider> cookieSpecRegistry)Assigns defaultCookieSpecregistry which will be used for request execution if not explicitly set in the client execution context.HttpClientBuildersetDefaultCookieStore(CookieStore cookieStore)Assigns defaultCookieStoreinstance which will be used for request execution if not explicitly set in the client execution context.HttpClientBuildersetDefaultCredentialsProvider(CredentialsProvider credentialsProvider)Assigns defaultCredentialsProviderinstance which will be used for request execution if not explicitly set in the client execution context.HttpClientBuildersetDefaultHeaders(java.util.Collection<? extends Header> defaultHeaders)Assigns default request header values.HttpClientBuildersetDefaultRequestConfig(RequestConfig config)Assigns defaultRequestConfiginstance which will be used for request execution if not explicitly set in the client execution context.HttpClientBuildersetDefaultSocketConfig(SocketConfig config)Assigns defaultSocketConfig.HttpClientBuildersetDnsResolver(DnsResolver dnsResolver)AssignsDnsResolverinstance.HttpClientBuildersetHostnameVerifier(X509HostnameVerifier hostnameVerifier)Deprecated.(4.4)HttpClientBuildersetHttpProcessor(HttpProcessor httpprocessor)AssignsHttpProcessorinstance.HttpClientBuildersetKeepAliveStrategy(ConnectionKeepAliveStrategy keepAliveStrategy)AssignsConnectionKeepAliveStrategyinstance.HttpClientBuildersetMaxConnPerRoute(int maxConnPerRoute)Assigns maximum connection per route value.HttpClientBuildersetMaxConnTotal(int maxConnTotal)Assigns maximum total connection value.HttpClientBuildersetProxy(HttpHost proxy)Assigns default proxy value.HttpClientBuildersetProxyAuthenticationStrategy(AuthenticationStrategy proxyAuthStrategy)AssignsAuthenticationStrategyinstance for proxy authentication.HttpClientBuildersetPublicSuffixMatcher(PublicSuffixMatcher publicSuffixMatcher)Assigns file containing public suffix matcher.HttpClientBuildersetRedirectStrategy(RedirectStrategy redirectStrategy)AssignsRedirectStrategyinstance.HttpClientBuildersetRequestExecutor(HttpRequestExecutor requestExec)AssignsHttpRequestExecutorinstance.HttpClientBuildersetRetryHandler(HttpRequestRetryHandler retryHandler)AssignsHttpRequestRetryHandlerinstance.HttpClientBuildersetRoutePlanner(HttpRoutePlanner routePlanner)AssignsHttpRoutePlannerinstance.HttpClientBuildersetSchemePortResolver(SchemePortResolver schemePortResolver)AssignsSchemePortResolverinstance.HttpClientBuildersetServiceUnavailableRetryStrategy(ServiceUnavailableRetryStrategy serviceUnavailStrategy)AssignsServiceUnavailableRetryStrategyinstance.HttpClientBuildersetSslcontext(javax.net.ssl.SSLContext sslcontext)Deprecated.(4.5) usesetSSLContext(SSLContext)HttpClientBuildersetSSLContext(javax.net.ssl.SSLContext sslContext)AssignsSSLContextinstance.HttpClientBuildersetSSLHostnameVerifier(javax.net.ssl.HostnameVerifier hostnameVerifier)AssignsHostnameVerifierinstance.HttpClientBuildersetSSLSocketFactory(LayeredConnectionSocketFactory sslSocketFactory)AssignsLayeredConnectionSocketFactoryinstance.HttpClientBuildersetTargetAuthenticationStrategy(AuthenticationStrategy targetAuthStrategy)AssignsAuthenticationStrategyinstance for target host authentication.HttpClientBuildersetUserAgent(java.lang.String userAgent)AssignsUser-Agentvalue.HttpClientBuildersetUserTokenHandler(UserTokenHandler userTokenHandler)AssignsUserTokenHandlerinstance.HttpClientBuilderuseSystemProperties()Use system properties when creating and configuring default implementations. 
 - 
 
- 
- 
Method Detail
- 
create
public static HttpClientBuilder create()
 
- 
setRequestExecutor
public final HttpClientBuilder setRequestExecutor(HttpRequestExecutor requestExec)
AssignsHttpRequestExecutorinstance. 
- 
setHostnameVerifier
@Deprecated public final HttpClientBuilder setHostnameVerifier(X509HostnameVerifier hostnameVerifier)
Deprecated.(4.4)AssignsX509HostnameVerifierinstance.Please note this value can be overridden by the
setConnectionManager( org.apache.http.conn.HttpClientConnectionManager)and thesetSSLSocketFactory( org.apache.http.conn.socket.LayeredConnectionSocketFactory)methods. 
- 
setSSLHostnameVerifier
public final HttpClientBuilder setSSLHostnameVerifier(javax.net.ssl.HostnameVerifier hostnameVerifier)
AssignsHostnameVerifierinstance.Please note this value can be overridden by the
setConnectionManager( org.apache.http.conn.HttpClientConnectionManager)and thesetSSLSocketFactory( 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 withPublicSuffixMatcherLoader.- Since:
 - 4.4
 - See Also:
 PublicSuffixMatcher,PublicSuffixMatcherLoader
 
- 
setSslcontext
@Deprecated public final HttpClientBuilder setSslcontext(javax.net.ssl.SSLContext sslcontext)
Deprecated.(4.5) usesetSSLContext(SSLContext)AssignsSSLContextinstance.Please note this value can be overridden by the
setConnectionManager( org.apache.http.conn.HttpClientConnectionManager)and thesetSSLSocketFactory( org.apache.http.conn.socket.LayeredConnectionSocketFactory)methods. 
- 
setSSLContext
public final HttpClientBuilder setSSLContext(javax.net.ssl.SSLContext sslContext)
AssignsSSLContextinstance.Please note this value can be overridden by the
setConnectionManager( org.apache.http.conn.HttpClientConnectionManager)and thesetSSLSocketFactory( org.apache.http.conn.socket.LayeredConnectionSocketFactory)methods. 
- 
setSSLSocketFactory
public final HttpClientBuilder setSSLSocketFactory(LayeredConnectionSocketFactory sslSocketFactory)
AssignsLayeredConnectionSocketFactoryinstance.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(SocketConfig config)
Assigns defaultSocketConfig.Please note this value can be overridden by the
setConnectionManager( org.apache.http.conn.HttpClientConnectionManager)method. 
- 
setDefaultConnectionConfig
public final HttpClientBuilder setDefaultConnectionConfig(ConnectionConfig config)
Assigns defaultConnectionConfig.Please note this value can be overridden by the
setConnectionManager( org.apache.http.conn.HttpClientConnectionManager)method. 
- 
setConnectionTimeToLive
public final HttpClientBuilder setConnectionTimeToLive(long connTimeToLive, java.util.concurrent.TimeUnit connTimeToLiveTimeUnit)
Sets maximum time to live for persistent connectionsPlease 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)
AssignsHttpClientConnectionManagerinstance. 
- 
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(ConnectionReuseStrategy reuseStrategy)
AssignsConnectionReuseStrategyinstance. 
- 
setKeepAliveStrategy
public final HttpClientBuilder setKeepAliveStrategy(ConnectionKeepAliveStrategy keepAliveStrategy)
AssignsConnectionKeepAliveStrategyinstance. 
- 
setTargetAuthenticationStrategy
public final HttpClientBuilder setTargetAuthenticationStrategy(AuthenticationStrategy targetAuthStrategy)
AssignsAuthenticationStrategyinstance for target host authentication. 
- 
setProxyAuthenticationStrategy
public final HttpClientBuilder setProxyAuthenticationStrategy(AuthenticationStrategy proxyAuthStrategy)
AssignsAuthenticationStrategyinstance for proxy authentication. 
- 
setUserTokenHandler
public final HttpClientBuilder setUserTokenHandler(UserTokenHandler userTokenHandler)
AssignsUserTokenHandlerinstance.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)
AssignsSchemePortResolverinstance. 
- 
setUserAgent
public final HttpClientBuilder setUserAgent(java.lang.String userAgent)
AssignsUser-Agentvalue.Please note this value can be overridden by the
setHttpProcessor( org.apache.http.protocol.HttpProcessor)method. 
- 
setDefaultHeaders
public final HttpClientBuilder setDefaultHeaders(java.util.Collection<? extends 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(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(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(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(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(HttpProcessor httpprocessor)
AssignsHttpProcessorinstance. 
- 
setDnsResolver
public final HttpClientBuilder setDnsResolver(DnsResolver dnsResolver)
AssignsDnsResolverinstance.Please note this value can be overridden by the
setConnectionManager(HttpClientConnectionManager)method. 
- 
setRetryHandler
public final HttpClientBuilder setRetryHandler(HttpRequestRetryHandler retryHandler)
AssignsHttpRequestRetryHandlerinstance.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(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)
AssignsHttpRoutePlannerinstance. 
- 
setRedirectStrategy
public final HttpClientBuilder setRedirectStrategy(RedirectStrategy redirectStrategy)
AssignsRedirectStrategyinstance.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)
AssignsConnectionBackoffStrategyinstance. 
- 
setBackoffManager
public final HttpClientBuilder setBackoffManager(BackoffManager backoffManager)
AssignsBackoffManagerinstance. 
- 
setServiceUnavailableRetryStrategy
public final HttpClientBuilder setServiceUnavailableRetryStrategy(ServiceUnavailableRetryStrategy serviceUnavailStrategy)
AssignsServiceUnavailableRetryStrategyinstance. 
- 
setDefaultCookieStore
public final HttpClientBuilder setDefaultCookieStore(CookieStore cookieStore)
Assigns defaultCookieStoreinstance which will be used for request execution if not explicitly set in the client execution context. 
- 
setDefaultCredentialsProvider
public final HttpClientBuilder setDefaultCredentialsProvider(CredentialsProvider credentialsProvider)
Assigns defaultCredentialsProviderinstance which will be used for request execution if not explicitly set in the client execution context. 
- 
setDefaultAuthSchemeRegistry
public final HttpClientBuilder setDefaultAuthSchemeRegistry(Lookup<AuthSchemeProvider> authSchemeRegistry)
Assigns defaultAuthSchemeregistry which will be used for request execution if not explicitly set in the client execution context. 
- 
setDefaultCookieSpecRegistry
public final HttpClientBuilder setDefaultCookieSpecRegistry(Lookup<CookieSpecProvider> cookieSpecRegistry)
Assigns defaultCookieSpecregistry which will be used for request execution if not explicitly set in the client execution context.- See Also:
 CookieSpecRegistries
 
- 
setContentDecoderRegistry
public final HttpClientBuilder setContentDecoderRegistry(java.util.Map<java.lang.String,InputStreamFactory> contentDecoderMap)
Assigns a map ofInputStreamFactorys to be used for automatic content decompression. 
- 
setDefaultRequestConfig
public final HttpClientBuilder setDefaultRequestConfig(RequestConfig config)
Assigns defaultRequestConfiginstance 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(java.lang.Long maxIdleTime, java.util.concurrent.TimeUnit maxIdleTimeUnit)
Deprecated.(4.5) useevictIdleConnections(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, java.util.concurrent.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
 
 
- 
build
public CloseableHttpClient build()
 
 - 
 
 -