Class HttpClientBuilder
- java.lang.Object
-
- org.apache.hc.client5.http.impl.classic.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().- 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
CloseableHttpClientinstances.- Since:
- 4.3
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description private static classHttpClientBuilder.ExecInterceptorEntryprivate static classHttpClientBuilder.RequestInterceptorEntryprivate static classHttpClientBuilder.ResponseInterceptorEntry
-
Field Summary
-
Constructor Summary
Constructors Modifier Constructor Description protectedHttpClientBuilder()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description protected voidaddCloseable(java.io.Closeable closeable)Adds to the list ofCloseableresources to be managed by the client.HttpClientBuilderaddExecInterceptorAfter(java.lang.String existing, java.lang.String name, ExecChainHandler interceptor)Adds this execution interceptor after interceptor with the given name.HttpClientBuilderaddExecInterceptorBefore(java.lang.String existing, java.lang.String name, ExecChainHandler interceptor)Adds this execution interceptor before an existing interceptor.HttpClientBuilderaddExecInterceptorFirst(java.lang.String name, ExecChainHandler interceptor)Add an interceptor to the head of the processing list.HttpClientBuilderaddExecInterceptorLast(java.lang.String name, ExecChainHandler interceptor)Add an interceptor to the tail of the processing list.HttpClientBuilderaddRequestInterceptorFirst(org.apache.hc.core5.http.HttpRequestInterceptor interceptor)Adds this protocol interceptor to the head of the protocol processing list.HttpClientBuilderaddRequestInterceptorLast(org.apache.hc.core5.http.HttpRequestInterceptor interceptor)Adds this protocol interceptor to the tail of the protocol processing list.HttpClientBuilderaddResponseInterceptorFirst(org.apache.hc.core5.http.HttpResponseInterceptor interceptor)Adds this protocol interceptor to the head of the protocol processing list.HttpClientBuilderaddResponseInterceptorLast(org.apache.hc.core5.http.HttpResponseInterceptor interceptor)Adds this protocol interceptor to the tail of the protocol processing list.CloseableHttpClientbuild()static HttpClientBuildercreate()protected voidcustomizeExecChain(org.apache.hc.core5.http.config.NamedElementChain<ExecChainHandler> execChainDefinition)Request exec chain customization and extension.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(org.apache.hc.core5.util.TimeValue maxIdleTime)Makes this instance of HttpClient proactively evict idle connections from the connection pool using a background thread.HttpClientBuilderreplaceExecInterceptor(java.lang.String existing, ExecChainHandler interceptor)Replace an existing interceptor with the given name with new interceptor.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(org.apache.hc.core5.http.ConnectionReuseStrategy reuseStrategy)AssignsConnectionReuseStrategyinstance.HttpClientBuildersetContentDecoderRegistry(java.util.LinkedHashMap<java.lang.String,InputStreamFactory> contentDecoderMap)Assigns a map ofInputStreamFactorys to be used for automatic content decompression.HttpClientBuildersetDefaultAuthSchemeRegistry(org.apache.hc.core5.http.config.Lookup<AuthSchemeFactory> authSchemeRegistry)Assigns defaultAuthSchemeregistry which will be used for request execution if not explicitly set in the client execution context.HttpClientBuildersetDefaultCookieSpecRegistry(org.apache.hc.core5.http.config.Lookup<CookieSpecFactory> 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 org.apache.hc.core5.http.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.HttpClientBuildersetKeepAliveStrategy(ConnectionKeepAliveStrategy keepAliveStrategy)AssignsConnectionKeepAliveStrategyinstance.HttpClientBuildersetProxy(org.apache.hc.core5.http.HttpHost proxy)Assigns default proxy value.HttpClientBuildersetProxyAuthenticationStrategy(AuthenticationStrategy proxyAuthStrategy)AssignsAuthenticationStrategyinstance for proxy authentication.HttpClientBuildersetProxySelector(java.net.ProxySelector proxySelector)Sets theProxySelectorthat will be used to select the proxies to be used for establishing HTTP connections.HttpClientBuildersetRedirectStrategy(RedirectStrategy redirectStrategy)AssignsRedirectStrategyinstance.HttpClientBuildersetRequestExecutor(org.apache.hc.core5.http.impl.io.HttpRequestExecutor requestExec)AssignsHttpRequestExecutorinstance.HttpClientBuildersetRetryStrategy(HttpRequestRetryStrategy retryStrategy)AssignsHttpRequestRetryStrategyinstance.HttpClientBuildersetRoutePlanner(HttpRoutePlanner routePlanner)AssignsHttpRoutePlannerinstance.HttpClientBuildersetSchemePortResolver(SchemePortResolver schemePortResolver)AssignsSchemePortResolverinstance.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.
-
-
-
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)
AssignsHttpRequestExecutorinstance.
-
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(org.apache.hc.core5.http.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.
-
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)
AssignsHttpRequestRetryStrategyinstance.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)
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.
-
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(org.apache.hc.core5.http.config.Lookup<AuthSchemeFactory> authSchemeRegistry)
Assigns defaultAuthSchemeregistry 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 defaultCookieSpecregistry 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 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 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 theProxySelectorthat 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- theProxySelectorto be used, or null to use the default system proxy selector.- Returns:
- this
HttpClientBuilderinstance, 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 ofCloseableresources to be managed by the client.For internal use.
-
build
public CloseableHttpClient build()
-
-