org.apache.http.impl.client
Class HttpClientBuilder

java.lang.Object
  extended by org.apache.http.impl.client.HttpClientBuilder

@NotThreadSafe
public class HttpClientBuilder
extends Object

Builder for CloseableHttpClient instances.

When a particular component is not explicitly 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().

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
protected HttpClientBuilder()
           
 
Method Summary
protected  void addCloseable(Closeable closeable)
          For internal use.
 HttpClientBuilder addInterceptorFirst(HttpRequestInterceptor itcp)
          Adds this protocol interceptor to the head of the protocol processing list.
 HttpClientBuilder addInterceptorFirst(HttpResponseInterceptor itcp)
          Adds this protocol interceptor to the head of the protocol processing list.
 HttpClientBuilder addInterceptorLast(HttpRequestInterceptor itcp)
          Adds this protocol interceptor to the tail of the protocol processing list.
 HttpClientBuilder addInterceptorLast(HttpResponseInterceptor itcp)
          Adds this protocol interceptor to the tail of the protocol processing list.
 CloseableHttpClient build()
           
static HttpClientBuilder create()
           
protected  ClientExecChain createMainExec(HttpRequestExecutor requestExec, HttpClientConnectionManager connManager, ConnectionReuseStrategy reuseStrategy, ConnectionKeepAliveStrategy keepAliveStrategy, 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 disableRedirectHandling()
          Disables automatic redirect handling.
 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(ConnectionReuseStrategy reuseStrategy)
          Assigns ConnectionReuseStrategy instance.
 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.

 HttpClientBuilder setContentDecoderRegistry(Map<String,InputStreamFactory> contentDecoderMap)
          Assigns a map of InputStreamFactorys to be used for automatic content decompression.
 HttpClientBuilder setDefaultAuthSchemeRegistry(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(ConnectionConfig config)
          Assigns default ConnectionConfig.
 HttpClientBuilder setDefaultCookieSpecRegistry(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 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(SocketConfig config)
          Assigns default SocketConfig.
 HttpClientBuilder setHostnameVerifier(X509HostnameVerifier hostnameVerifier)
          Assigns X509HostnameVerifier instance.
 HttpClientBuilder setHttpProcessor(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(HttpHost proxy)
          Assigns default proxy value.
 HttpClientBuilder setProxyAuthenticationStrategy(AuthenticationStrategy proxyAuthStrategy)
          Assigns AuthenticationStrategy instance for target host authentication.
 HttpClientBuilder setRedirectStrategy(RedirectStrategy redirectStrategy)
          Assigns RedirectStrategy instance.
 HttpClientBuilder setRequestExecutor(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)
          Assigns SSLContext instance.
 HttpClientBuilder setSSLSocketFactory(LayeredConnectionSocketFactory sslSocketFactory)
          Assigns LayeredConnectionSocketFactory instance.
 HttpClientBuilder setTargetAuthenticationStrategy(AuthenticationStrategy targetAuthStrategy)
          Assigns AuthenticationStrategy instance for proxy 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(HttpRequestExecutor requestExec)
Assigns HttpRequestExecutor instance.


setHostnameVerifier

public final HttpClientBuilder setHostnameVerifier(X509HostnameVerifier hostnameVerifier)
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.


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(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(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(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 proxy authentication.


setProxyAuthenticationStrategy

public final HttpClientBuilder setProxyAuthenticationStrategy(AuthenticationStrategy proxyAuthStrategy)
Assigns AuthenticationStrategy instance for target host 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 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)
Assigns HttpProcessor instance.


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(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(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(Lookup<CookieSpecProvider> cookieSpecRegistry)
Assigns default CookieSpec registry which will be used for request execution if not explicitly set in the client execution context.


setContentDecoderRegistry

public final HttpClientBuilder setContentDecoderRegistry(Map<String,InputStreamFactory> contentDecoderMap)
Assigns a map of InputStreamFactorys 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.


createMainExec

protected ClientExecChain createMainExec(HttpRequestExecutor requestExec,
                                         HttpClientConnectionManager connManager,
                                         ConnectionReuseStrategy reuseStrategy,
                                         ConnectionKeepAliveStrategy keepAliveStrategy,
                                         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–2014 The Apache Software Foundation. All rights reserved.