Class HttpClientBuilder
- java.lang.Object
-
- org.apache.hc.client5.http.impl.classic.HttpClientBuilder
-
- Direct Known Subclasses:
CachingHttpClientBuilder
public class HttpClientBuilder extends java.lang.Object
Builder forCloseableHttpClient
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 callingbuild()
.- http.proxyHost
- http.proxyPort
- https.proxyHost
- https.proxyPort
- http.nonProxyHosts
- https.proxyUser
- http.proxyUser
- https.proxyPassword
- http.proxyPassword
- http.keepAlive
- 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
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description private static class
HttpClientBuilder.ExecInterceptorEntry
private static class
HttpClientBuilder.RequestInterceptorEntry
private static class
HttpClientBuilder.ResponseInterceptorEntry
-
Field Summary
-
Constructor Summary
Constructors Modifier Constructor Description protected
HttpClientBuilder()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description protected void
addCloseable(java.io.Closeable closeable)
Adds to the list ofCloseable
resources to be managed by the client.HttpClientBuilder
addExecInterceptorAfter(java.lang.String existing, java.lang.String name, ExecChainHandler interceptor)
Adds this execution interceptor after interceptor with the given name.HttpClientBuilder
addExecInterceptorBefore(java.lang.String existing, java.lang.String name, ExecChainHandler interceptor)
Adds this execution interceptor before an existing interceptor.HttpClientBuilder
addExecInterceptorFirst(java.lang.String name, ExecChainHandler interceptor)
Add an interceptor to the head of the processing list.HttpClientBuilder
addExecInterceptorLast(java.lang.String name, ExecChainHandler interceptor)
Add an interceptor to the tail of the processing list.HttpClientBuilder
addRequestInterceptorFirst(org.apache.hc.core5.http.HttpRequestInterceptor interceptor)
Adds this protocol interceptor to the head of the protocol processing list.HttpClientBuilder
addRequestInterceptorLast(org.apache.hc.core5.http.HttpRequestInterceptor interceptor)
Adds this protocol interceptor to the tail of the protocol processing list.HttpClientBuilder
addResponseInterceptorFirst(org.apache.hc.core5.http.HttpResponseInterceptor interceptor)
Adds this protocol interceptor to the head of the protocol processing list.HttpClientBuilder
addResponseInterceptorLast(org.apache.hc.core5.http.HttpResponseInterceptor interceptor)
Adds this protocol interceptor to the tail of the protocol processing list.CloseableHttpClient
build()
static HttpClientBuilder
create()
protected void
customizeExecChain(org.apache.hc.core5.http.config.NamedElementChain<ExecChainHandler> execChainDefinition)
Request exec chain customization and extension.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(org.apache.hc.core5.util.TimeValue maxIdleTime)
Makes this instance of HttpClient proactively evict idle connections from the connection pool using a background thread.HttpClientBuilder
replaceExecInterceptor(java.lang.String existing, ExecChainHandler interceptor)
Replace an existing interceptor with the given name with new interceptor.HttpClientBuilder
setBackoffManager(BackoffManager backoffManager)
AssignsBackoffManager
instance.HttpClientBuilder
setConnectionBackoffStrategy(ConnectionBackoffStrategy connectionBackoffStrategy)
AssignsConnectionBackoffStrategy
instance.HttpClientBuilder
setConnectionManager(HttpClientConnectionManager connManager)
AssignsHttpClientConnectionManager
instance.HttpClientBuilder
setConnectionManagerShared(boolean shared)
Defines the connection manager is to be shared by multiple client instances.HttpClientBuilder
setConnectionReuseStrategy(org.apache.hc.core5.http.ConnectionReuseStrategy reuseStrategy)
AssignsConnectionReuseStrategy
instance.HttpClientBuilder
setContentDecoderRegistry(java.util.LinkedHashMap<java.lang.String,InputStreamFactory> contentDecoderMap)
Assigns a map ofInputStreamFactory
s to be used for automatic content decompression.HttpClientBuilder
setDefaultAuthSchemeRegistry(org.apache.hc.core5.http.config.Lookup<AuthSchemeFactory> authSchemeRegistry)
Assigns defaultAuthScheme
registry which will be used for request execution if not explicitly set in the client execution context.HttpClientBuilder
setDefaultCookieSpecRegistry(org.apache.hc.core5.http.config.Lookup<CookieSpecFactory> cookieSpecRegistry)
Assigns defaultCookieSpec
registry which will be used for request execution if not explicitly set in the client execution context.HttpClientBuilder
setDefaultCookieStore(CookieStore cookieStore)
Assigns defaultCookieStore
instance which will be used for request execution if not explicitly set in the client execution context.HttpClientBuilder
setDefaultCredentialsProvider(CredentialsProvider credentialsProvider)
Assigns defaultCredentialsProvider
instance which will be used for request execution if not explicitly set in the client execution context.HttpClientBuilder
setDefaultHeaders(java.util.Collection<? extends org.apache.hc.core5.http.Header> defaultHeaders)
Assigns default request header values.HttpClientBuilder
setDefaultRequestConfig(RequestConfig config)
Assigns defaultRequestConfig
instance which will be used for request execution if not explicitly set in the client execution context.HttpClientBuilder
setKeepAliveStrategy(ConnectionKeepAliveStrategy keepAliveStrategy)
AssignsConnectionKeepAliveStrategy
instance.HttpClientBuilder
setProxy(org.apache.hc.core5.http.HttpHost proxy)
Assigns default proxy value.HttpClientBuilder
setProxyAuthenticationStrategy(AuthenticationStrategy proxyAuthStrategy)
AssignsAuthenticationStrategy
instance for proxy authentication.HttpClientBuilder
setProxySelector(java.net.ProxySelector proxySelector)
Sets theProxySelector
that will be used to select the proxies to be used for establishing HTTP connections.HttpClientBuilder
setRedirectStrategy(RedirectStrategy redirectStrategy)
AssignsRedirectStrategy
instance.HttpClientBuilder
setRequestExecutor(org.apache.hc.core5.http.impl.io.HttpRequestExecutor requestExec)
AssignsHttpRequestExecutor
instance.HttpClientBuilder
setRetryStrategy(HttpRequestRetryStrategy retryStrategy)
AssignsHttpRequestRetryStrategy
instance.HttpClientBuilder
setRoutePlanner(HttpRoutePlanner routePlanner)
AssignsHttpRoutePlanner
instance.HttpClientBuilder
setSchemePortResolver(SchemePortResolver schemePortResolver)
AssignsSchemePortResolver
instance.HttpClientBuilder
setTargetAuthenticationStrategy(AuthenticationStrategy targetAuthStrategy)
AssignsAuthenticationStrategy
instance for target host authentication.HttpClientBuilder
setUserAgent(java.lang.String userAgent)
AssignsUser-Agent
value.HttpClientBuilder
setUserTokenHandler(UserTokenHandler userTokenHandler)
AssignsUserTokenHandler
instance.HttpClientBuilder
useSystemProperties()
Use system properties when creating and configuring default implementations.
-
-
-
Field Detail
-
requestExec
private org.apache.hc.core5.http.impl.io.HttpRequestExecutor requestExec
-
connManager
private HttpClientConnectionManager connManager
-
connManagerShared
private boolean connManagerShared
-
schemePortResolver
private SchemePortResolver schemePortResolver
-
reuseStrategy
private org.apache.hc.core5.http.ConnectionReuseStrategy reuseStrategy
-
keepAliveStrategy
private ConnectionKeepAliveStrategy keepAliveStrategy
-
targetAuthStrategy
private AuthenticationStrategy targetAuthStrategy
-
proxyAuthStrategy
private AuthenticationStrategy proxyAuthStrategy
-
userTokenHandler
private UserTokenHandler userTokenHandler
-
requestInterceptors
private java.util.LinkedList<HttpClientBuilder.RequestInterceptorEntry> requestInterceptors
-
responseInterceptors
private java.util.LinkedList<HttpClientBuilder.ResponseInterceptorEntry> responseInterceptors
-
execInterceptors
private java.util.LinkedList<HttpClientBuilder.ExecInterceptorEntry> execInterceptors
-
retryStrategy
private HttpRequestRetryStrategy retryStrategy
-
routePlanner
private HttpRoutePlanner routePlanner
-
redirectStrategy
private RedirectStrategy redirectStrategy
-
connectionBackoffStrategy
private ConnectionBackoffStrategy connectionBackoffStrategy
-
backoffManager
private BackoffManager backoffManager
-
authSchemeRegistry
private org.apache.hc.core5.http.config.Lookup<AuthSchemeFactory> authSchemeRegistry
-
cookieSpecRegistry
private org.apache.hc.core5.http.config.Lookup<CookieSpecFactory> cookieSpecRegistry
-
contentDecoderMap
private java.util.LinkedHashMap<java.lang.String,InputStreamFactory> contentDecoderMap
-
cookieStore
private CookieStore cookieStore
-
credentialsProvider
private CredentialsProvider credentialsProvider
-
userAgent
private java.lang.String userAgent
-
proxy
private org.apache.hc.core5.http.HttpHost proxy
-
defaultHeaders
private java.util.Collection<? extends org.apache.hc.core5.http.Header> defaultHeaders
-
defaultRequestConfig
private RequestConfig defaultRequestConfig
-
evictExpiredConnections
private boolean evictExpiredConnections
-
evictIdleConnections
private boolean evictIdleConnections
-
maxIdleTime
private org.apache.hc.core5.util.TimeValue maxIdleTime
-
systemProperties
private boolean systemProperties
-
redirectHandlingDisabled
private boolean redirectHandlingDisabled
-
automaticRetriesDisabled
private boolean automaticRetriesDisabled
-
contentCompressionDisabled
private boolean contentCompressionDisabled
-
cookieManagementDisabled
private boolean cookieManagementDisabled
-
authCachingDisabled
private boolean authCachingDisabled
-
connectionStateDisabled
private boolean connectionStateDisabled
-
defaultUserAgentDisabled
private boolean defaultUserAgentDisabled
-
proxySelector
private java.net.ProxySelector proxySelector
-
closeables
private java.util.List<java.io.Closeable> closeables
-
-
Method Detail
-
create
public static HttpClientBuilder create()
-
setRequestExecutor
public final HttpClientBuilder setRequestExecutor(org.apache.hc.core5.http.impl.io.HttpRequestExecutor requestExec)
AssignsHttpRequestExecutor
instance.
-
setConnectionManager
public final HttpClientBuilder setConnectionManager(HttpClientConnectionManager connManager)
AssignsHttpClientConnectionManager
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.hc.core5.http.ConnectionReuseStrategy reuseStrategy)
AssignsConnectionReuseStrategy
instance.
-
setKeepAliveStrategy
public final HttpClientBuilder setKeepAliveStrategy(ConnectionKeepAliveStrategy keepAliveStrategy)
AssignsConnectionKeepAliveStrategy
instance.
-
setTargetAuthenticationStrategy
public final HttpClientBuilder setTargetAuthenticationStrategy(AuthenticationStrategy targetAuthStrategy)
AssignsAuthenticationStrategy
instance for target host authentication.
-
setProxyAuthenticationStrategy
public final HttpClientBuilder setProxyAuthenticationStrategy(AuthenticationStrategy proxyAuthStrategy)
AssignsAuthenticationStrategy
instance for proxy authentication.
-
setUserTokenHandler
public final HttpClientBuilder setUserTokenHandler(UserTokenHandler userTokenHandler)
AssignsUserTokenHandler
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)
AssignsSchemePortResolver
instance.
-
setUserAgent
public final HttpClientBuilder setUserAgent(java.lang.String userAgent)
AssignsUser-Agent
value.
-
setDefaultHeaders
public final HttpClientBuilder setDefaultHeaders(java.util.Collection<? extends org.apache.hc.core5.http.Header> defaultHeaders)
Assigns default request header values.
-
addResponseInterceptorFirst
public final HttpClientBuilder addResponseInterceptorFirst(org.apache.hc.core5.http.HttpResponseInterceptor interceptor)
Adds this protocol interceptor to the head of the protocol processing list.
-
addResponseInterceptorLast
public final HttpClientBuilder addResponseInterceptorLast(org.apache.hc.core5.http.HttpResponseInterceptor interceptor)
Adds this protocol interceptor to the tail of the protocol processing list.
-
addRequestInterceptorFirst
public final HttpClientBuilder addRequestInterceptorFirst(org.apache.hc.core5.http.HttpRequestInterceptor interceptor)
Adds this protocol interceptor to the head of the protocol processing list.
-
addRequestInterceptorLast
public final HttpClientBuilder addRequestInterceptorLast(org.apache.hc.core5.http.HttpRequestInterceptor interceptor)
Adds this protocol interceptor to the tail of the protocol processing list.
-
addExecInterceptorBefore
public final HttpClientBuilder addExecInterceptorBefore(java.lang.String existing, java.lang.String name, ExecChainHandler interceptor)
Adds this execution interceptor before an existing interceptor.
-
addExecInterceptorAfter
public final HttpClientBuilder addExecInterceptorAfter(java.lang.String existing, java.lang.String name, ExecChainHandler interceptor)
Adds this execution interceptor after interceptor with the given name.
-
replaceExecInterceptor
public final HttpClientBuilder replaceExecInterceptor(java.lang.String existing, ExecChainHandler interceptor)
Replace an existing interceptor with the given name with new interceptor.
-
addExecInterceptorFirst
public final HttpClientBuilder addExecInterceptorFirst(java.lang.String name, ExecChainHandler interceptor)
Add an interceptor to the head of the processing list.
-
addExecInterceptorLast
public final HttpClientBuilder addExecInterceptorLast(java.lang.String name, ExecChainHandler interceptor)
Add an interceptor to the tail of the processing list.
-
disableCookieManagement
public final HttpClientBuilder disableCookieManagement()
Disables state (cookie) management.
-
disableContentCompression
public final HttpClientBuilder disableContentCompression()
Disables automatic content decompression.
-
disableAuthCaching
public final HttpClientBuilder disableAuthCaching()
Disables authentication scheme caching.
-
setRetryStrategy
public final HttpClientBuilder setRetryStrategy(HttpRequestRetryStrategy retryStrategy)
AssignsHttpRequestRetryStrategy
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.hc.core5.http.HttpHost proxy)
Assigns default proxy value.Please note this value can be overridden by the
setRoutePlanner( org.apache.hc.client5.http.routing.HttpRoutePlanner)
method.
-
setRoutePlanner
public final HttpClientBuilder setRoutePlanner(HttpRoutePlanner routePlanner)
AssignsHttpRoutePlanner
instance.
-
setRedirectStrategy
public final HttpClientBuilder setRedirectStrategy(RedirectStrategy redirectStrategy)
AssignsRedirectStrategy
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)
AssignsConnectionBackoffStrategy
instance.
-
setBackoffManager
public final HttpClientBuilder setBackoffManager(BackoffManager backoffManager)
AssignsBackoffManager
instance.
-
setDefaultCookieStore
public final HttpClientBuilder setDefaultCookieStore(CookieStore cookieStore)
Assigns defaultCookieStore
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 defaultCredentialsProvider
instance which will be used for request execution if not explicitly set in the client execution context.
-
setDefaultAuthSchemeRegistry
public final HttpClientBuilder setDefaultAuthSchemeRegistry(org.apache.hc.core5.http.config.Lookup<AuthSchemeFactory> authSchemeRegistry)
Assigns defaultAuthScheme
registry which will be used for request execution if not explicitly set in the client execution context.
-
setDefaultCookieSpecRegistry
public final HttpClientBuilder setDefaultCookieSpecRegistry(org.apache.hc.core5.http.config.Lookup<CookieSpecFactory> cookieSpecRegistry)
Assigns defaultCookieSpec
registry which will be used for request execution if not explicitly set in the client execution context.- See Also:
CookieSpecSupport
-
setContentDecoderRegistry
public final HttpClientBuilder setContentDecoderRegistry(java.util.LinkedHashMap<java.lang.String,InputStreamFactory> contentDecoderMap)
Assigns a map ofInputStreamFactory
s to be used for automatic content decompression.
-
setDefaultRequestConfig
public final HttpClientBuilder setDefaultRequestConfig(RequestConfig config)
Assigns defaultRequestConfig
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 configured to use a shared connection manager.
- Since:
- 4.4
- See Also:
setConnectionManagerShared(boolean)
,ConnPoolControl.closeExpired()
-
evictIdleConnections
public final HttpClientBuilder evictIdleConnections(org.apache.hc.core5.util.TimeValue maxIdleTime)
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 configured to use a shared connection manager.
- 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.- Since:
- 4.4
- See Also:
setConnectionManagerShared(boolean)
,ConnPoolControl.closeIdle(TimeValue)
-
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
-
setProxySelector
public final HttpClientBuilder setProxySelector(java.net.ProxySelector proxySelector)
Sets theProxySelector
that will be used to select the proxies to be used for establishing HTTP connections. If a non-null proxy selector is set, it will take precedence over the proxy settings configured in the client.- Parameters:
proxySelector
- theProxySelector
to be used, or null to use the default system proxy selector.- Returns:
- this
HttpClientBuilder
instance, to allow for method chaining.
-
customizeExecChain
@Internal protected void customizeExecChain(org.apache.hc.core5.http.config.NamedElementChain<ExecChainHandler> execChainDefinition)
Request exec chain customization and extension.For internal use.
-
addCloseable
@Internal protected void addCloseable(java.io.Closeable closeable)
Adds to the list ofCloseable
resources to be managed by the client.For internal use.
-
build
public CloseableHttpClient build()
-
-