Class H2AsyncClientBuilder
- java.lang.Object
-
- org.apache.hc.client5.http.impl.async.H2AsyncClientBuilder
-
- Direct Known Subclasses:
CachingH2AsyncClientBuilder
public class H2AsyncClientBuilder extends java.lang.Object
Builder for HTTP/2 onlyCloseableHttpAsyncClient
instances.Concurrent message exchanges with the same connection route executed with these
CloseableHttpAsyncClient
instances will get automatically multiplexed over a single physical HTTP/2 connection.When a particular component is not explicitly set this class will use its default implementation.
- Since:
- 5.0
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description private static class
H2AsyncClientBuilder.ExecInterceptorEntry
(package private) static class
H2AsyncClientBuilder.IdleConnectionEvictor
private static class
H2AsyncClientBuilder.RequestInterceptorEntry
private static class
H2AsyncClientBuilder.ResponseInterceptorEntry
-
Field Summary
Fields Modifier and Type Field Description private boolean
authCachingDisabled
private org.apache.hc.core5.http.config.Lookup<AuthSchemeFactory>
authSchemeRegistry
private boolean
automaticRetriesDisabled
private org.apache.hc.core5.http.config.CharCodingConfig
charCodingConfig
private java.util.List<java.io.Closeable>
closeables
private org.apache.hc.core5.function.Resolver<org.apache.hc.core5.http.HttpHost,ConnectionConfig>
connectionConfigResolver
private boolean
cookieManagementDisabled
private org.apache.hc.core5.http.config.Lookup<CookieSpecFactory>
cookieSpecRegistry
private CookieStore
cookieStore
private CredentialsProvider
credentialsProvider
private java.util.Collection<? extends org.apache.hc.core5.http.Header>
defaultHeaders
private RequestConfig
defaultRequestConfig
private DnsResolver
dnsResolver
private boolean
evictIdleConnections
private java.util.LinkedList<H2AsyncClientBuilder.ExecInterceptorEntry>
execInterceptors
private org.apache.hc.core5.http2.config.H2Config
h2Config
private org.apache.hc.core5.reactor.IOReactorConfig
ioReactorConfig
private org.apache.hc.core5.function.Callback<java.lang.Exception>
ioReactorExceptionCallback
private org.apache.hc.core5.function.Decorator<org.apache.hc.core5.reactor.IOSession>
ioSessionDecorator
private org.apache.hc.core5.reactor.IOSessionListener
ioSessionListener
private org.apache.hc.core5.util.TimeValue
maxIdleTime
private AuthenticationStrategy
proxyAuthStrategy
private boolean
redirectHandlingDisabled
private RedirectStrategy
redirectStrategy
private java.util.LinkedList<H2AsyncClientBuilder.RequestInterceptorEntry>
requestInterceptors
private java.util.LinkedList<H2AsyncClientBuilder.ResponseInterceptorEntry>
responseInterceptors
private HttpRequestRetryStrategy
retryStrategy
private HttpRoutePlanner
routePlanner
private SchemePortResolver
schemePortResolver
private boolean
systemProperties
private AuthenticationStrategy
targetAuthStrategy
private java.util.concurrent.ThreadFactory
threadFactory
private org.apache.hc.core5.http.nio.ssl.TlsStrategy
tlsStrategy
private java.lang.String
userAgent
-
Constructor Summary
Constructors Modifier Constructor Description protected
H2AsyncClientBuilder()
-
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.H2AsyncClientBuilder
addExecInterceptorAfter(java.lang.String existing, java.lang.String name, AsyncExecChainHandler interceptor)
Adds this execution interceptor after interceptor with the given name.H2AsyncClientBuilder
addExecInterceptorBefore(java.lang.String existing, java.lang.String name, AsyncExecChainHandler interceptor)
Adds this execution interceptor before an existing interceptor.H2AsyncClientBuilder
addExecInterceptorFirst(java.lang.String name, AsyncExecChainHandler interceptor)
Add an interceptor to the head of the processing list.H2AsyncClientBuilder
addExecInterceptorLast(java.lang.String name, AsyncExecChainHandler interceptor)
Add an interceptor to the tail of the processing list.H2AsyncClientBuilder
addRequestInterceptorFirst(org.apache.hc.core5.http.HttpRequestInterceptor interceptor)
Adds this protocol interceptor to the head of the protocol processing list.H2AsyncClientBuilder
addRequestInterceptorLast(org.apache.hc.core5.http.HttpRequestInterceptor interceptor)
Adds this protocol interceptor to the tail of the protocol processing list.H2AsyncClientBuilder
addResponseInterceptorFirst(org.apache.hc.core5.http.HttpResponseInterceptor interceptor)
Adds this protocol interceptor to the head of the protocol processing list.H2AsyncClientBuilder
addResponseInterceptorLast(org.apache.hc.core5.http.HttpResponseInterceptor interceptor)
Adds this protocol interceptor to the tail of the protocol processing list.CloseableHttpAsyncClient
build()
static H2AsyncClientBuilder
create()
protected void
customizeExecChain(org.apache.hc.core5.http.config.NamedElementChain<AsyncExecChainHandler> execChainDefinition)
Request exec chain customization and extension.H2AsyncClientBuilder
disableAuthCaching()
Disables authentication scheme caching.H2AsyncClientBuilder
disableAutomaticRetries()
Disables automatic request recovery and re-execution.H2AsyncClientBuilder
disableCookieManagement()
Disables state (cookie) management.H2AsyncClientBuilder
disableRedirectHandling()
Disables automatic redirect handling.H2AsyncClientBuilder
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.private static java.lang.String
getProperty(java.lang.String key, java.lang.String defaultValue)
H2AsyncClientBuilder
replaceExecInterceptor(java.lang.String existing, AsyncExecChainHandler interceptor)
Replace an existing interceptor with the given name with new interceptor.H2AsyncClientBuilder
setCharCodingConfig(org.apache.hc.core5.http.config.CharCodingConfig charCodingConfig)
SetsCharCodingConfig
configuration.H2AsyncClientBuilder
setConnectionConfigResolver(org.apache.hc.core5.function.Resolver<org.apache.hc.core5.http.HttpHost,ConnectionConfig> connectionConfigResolver)
AssignsResolver
forConnectionConfig
on a per host basis.H2AsyncClientBuilder
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.H2AsyncClientBuilder
setDefaultConnectionConfig(ConnectionConfig connectionConfig)
Assigns the sameConnectionConfig
for all hosts.H2AsyncClientBuilder
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.H2AsyncClientBuilder
setDefaultCookieStore(CookieStore cookieStore)
Assigns defaultCookieStore
instance which will be used for request execution if not explicitly set in the client execution context.H2AsyncClientBuilder
setDefaultCredentialsProvider(CredentialsProvider credentialsProvider)
Assigns defaultCredentialsProvider
instance which will be used for request execution if not explicitly set in the client execution context.H2AsyncClientBuilder
setDefaultHeaders(java.util.Collection<? extends org.apache.hc.core5.http.Header> defaultHeaders)
Assigns default request header values.H2AsyncClientBuilder
setDefaultRequestConfig(RequestConfig config)
Assigns defaultRequestConfig
instance which will be used for request execution if not explicitly set in the client execution context.H2AsyncClientBuilder
setDnsResolver(DnsResolver dnsResolver)
AssignsDnsResolver
instance.H2AsyncClientBuilder
setH2Config(org.apache.hc.core5.http2.config.H2Config h2Config)
SetsH2Config
configuration.H2AsyncClientBuilder
setIOReactorConfig(org.apache.hc.core5.reactor.IOReactorConfig ioReactorConfig)
SetsIOReactorConfig
configuration.H2AsyncClientBuilder
setIoReactorExceptionCallback(org.apache.hc.core5.function.Callback<java.lang.Exception> ioReactorExceptionCallback)
Sets the callback that will be invoked when the client's IOReactor encounters an uncaught exception.H2AsyncClientBuilder
setIoSessionDecorator(org.apache.hc.core5.function.Decorator<org.apache.hc.core5.reactor.IOSession> ioSessionDecorator)
Sets theIOSession
Decorator
that will be use with the client's IOReactor.H2AsyncClientBuilder
setIOSessionListener(org.apache.hc.core5.reactor.IOSessionListener ioSessionListener)
SetsIOSessionListener
listener.H2AsyncClientBuilder
setProxyAuthenticationStrategy(AuthenticationStrategy proxyAuthStrategy)
AssignsAuthenticationStrategy
instance for proxy authentication.H2AsyncClientBuilder
setRedirectStrategy(RedirectStrategy redirectStrategy)
AssignsRedirectStrategy
instance.H2AsyncClientBuilder
setRetryStrategy(HttpRequestRetryStrategy retryStrategy)
AssignsHttpRequestRetryStrategy
instance.H2AsyncClientBuilder
setRoutePlanner(HttpRoutePlanner routePlanner)
AssignsHttpRoutePlanner
instance.H2AsyncClientBuilder
setSchemePortResolver(SchemePortResolver schemePortResolver)
AssignsSchemePortResolver
instance.H2AsyncClientBuilder
setTargetAuthenticationStrategy(AuthenticationStrategy targetAuthStrategy)
AssignsAuthenticationStrategy
instance for target host authentication.H2AsyncClientBuilder
setThreadFactory(java.util.concurrent.ThreadFactory threadFactory)
AssignsThreadFactory
instance.H2AsyncClientBuilder
setTlsStrategy(org.apache.hc.core5.http.nio.ssl.TlsStrategy tlsStrategy)
AssignsTlsStrategy
instance.H2AsyncClientBuilder
setUserAgent(java.lang.String userAgent)
AssignsUser-Agent
value.H2AsyncClientBuilder
useSystemProperties()
Use system properties when creating and configuring default implementations.
-
-
-
Field Detail
-
ioReactorConfig
private org.apache.hc.core5.reactor.IOReactorConfig ioReactorConfig
-
ioSessionListener
private org.apache.hc.core5.reactor.IOSessionListener ioSessionListener
-
h2Config
private org.apache.hc.core5.http2.config.H2Config h2Config
-
charCodingConfig
private org.apache.hc.core5.http.config.CharCodingConfig charCodingConfig
-
schemePortResolver
private SchemePortResolver schemePortResolver
-
targetAuthStrategy
private AuthenticationStrategy targetAuthStrategy
-
proxyAuthStrategy
private AuthenticationStrategy proxyAuthStrategy
-
requestInterceptors
private java.util.LinkedList<H2AsyncClientBuilder.RequestInterceptorEntry> requestInterceptors
-
responseInterceptors
private java.util.LinkedList<H2AsyncClientBuilder.ResponseInterceptorEntry> responseInterceptors
-
execInterceptors
private java.util.LinkedList<H2AsyncClientBuilder.ExecInterceptorEntry> execInterceptors
-
routePlanner
private HttpRoutePlanner routePlanner
-
redirectStrategy
private RedirectStrategy redirectStrategy
-
retryStrategy
private HttpRequestRetryStrategy retryStrategy
-
authSchemeRegistry
private org.apache.hc.core5.http.config.Lookup<AuthSchemeFactory> authSchemeRegistry
-
cookieSpecRegistry
private org.apache.hc.core5.http.config.Lookup<CookieSpecFactory> cookieSpecRegistry
-
cookieStore
private CookieStore cookieStore
-
credentialsProvider
private CredentialsProvider credentialsProvider
-
userAgent
private java.lang.String userAgent
-
defaultHeaders
private java.util.Collection<? extends org.apache.hc.core5.http.Header> defaultHeaders
-
defaultRequestConfig
private RequestConfig defaultRequestConfig
-
connectionConfigResolver
private org.apache.hc.core5.function.Resolver<org.apache.hc.core5.http.HttpHost,ConnectionConfig> connectionConfigResolver
-
evictIdleConnections
private boolean evictIdleConnections
-
maxIdleTime
private org.apache.hc.core5.util.TimeValue maxIdleTime
-
systemProperties
private boolean systemProperties
-
automaticRetriesDisabled
private boolean automaticRetriesDisabled
-
redirectHandlingDisabled
private boolean redirectHandlingDisabled
-
cookieManagementDisabled
private boolean cookieManagementDisabled
-
authCachingDisabled
private boolean authCachingDisabled
-
dnsResolver
private DnsResolver dnsResolver
-
tlsStrategy
private org.apache.hc.core5.http.nio.ssl.TlsStrategy tlsStrategy
-
threadFactory
private java.util.concurrent.ThreadFactory threadFactory
-
closeables
private java.util.List<java.io.Closeable> closeables
-
ioReactorExceptionCallback
private org.apache.hc.core5.function.Callback<java.lang.Exception> ioReactorExceptionCallback
-
ioSessionDecorator
private org.apache.hc.core5.function.Decorator<org.apache.hc.core5.reactor.IOSession> ioSessionDecorator
-
-
Method Detail
-
create
public static H2AsyncClientBuilder create()
-
setH2Config
public final H2AsyncClientBuilder setH2Config(org.apache.hc.core5.http2.config.H2Config h2Config)
SetsH2Config
configuration.
-
setIOReactorConfig
public final H2AsyncClientBuilder setIOReactorConfig(org.apache.hc.core5.reactor.IOReactorConfig ioReactorConfig)
SetsIOReactorConfig
configuration.
-
setIOSessionListener
public final H2AsyncClientBuilder setIOSessionListener(org.apache.hc.core5.reactor.IOSessionListener ioSessionListener)
SetsIOSessionListener
listener.- Since:
- 5.2
-
setCharCodingConfig
public final H2AsyncClientBuilder setCharCodingConfig(org.apache.hc.core5.http.config.CharCodingConfig charCodingConfig)
SetsCharCodingConfig
configuration.
-
setTargetAuthenticationStrategy
public final H2AsyncClientBuilder setTargetAuthenticationStrategy(AuthenticationStrategy targetAuthStrategy)
AssignsAuthenticationStrategy
instance for target host authentication.
-
setProxyAuthenticationStrategy
public final H2AsyncClientBuilder setProxyAuthenticationStrategy(AuthenticationStrategy proxyAuthStrategy)
AssignsAuthenticationStrategy
instance for proxy authentication.
-
setIoReactorExceptionCallback
public final H2AsyncClientBuilder setIoReactorExceptionCallback(org.apache.hc.core5.function.Callback<java.lang.Exception> ioReactorExceptionCallback)
Sets the callback that will be invoked when the client's IOReactor encounters an uncaught exception.- Since:
- 5.2
-
setIoSessionDecorator
public final H2AsyncClientBuilder setIoSessionDecorator(org.apache.hc.core5.function.Decorator<org.apache.hc.core5.reactor.IOSession> ioSessionDecorator)
Sets theIOSession
Decorator
that will be use with the client's IOReactor.- Since:
- 5.2
-
addResponseInterceptorFirst
public final H2AsyncClientBuilder addResponseInterceptorFirst(org.apache.hc.core5.http.HttpResponseInterceptor interceptor)
Adds this protocol interceptor to the head of the protocol processing list.
-
addResponseInterceptorLast
public final H2AsyncClientBuilder addResponseInterceptorLast(org.apache.hc.core5.http.HttpResponseInterceptor interceptor)
Adds this protocol interceptor to the tail of the protocol processing list.
-
addExecInterceptorBefore
public final H2AsyncClientBuilder addExecInterceptorBefore(java.lang.String existing, java.lang.String name, AsyncExecChainHandler interceptor)
Adds this execution interceptor before an existing interceptor.
-
addExecInterceptorAfter
public final H2AsyncClientBuilder addExecInterceptorAfter(java.lang.String existing, java.lang.String name, AsyncExecChainHandler interceptor)
Adds this execution interceptor after interceptor with the given name.
-
replaceExecInterceptor
public final H2AsyncClientBuilder replaceExecInterceptor(java.lang.String existing, AsyncExecChainHandler interceptor)
Replace an existing interceptor with the given name with new interceptor.
-
addExecInterceptorFirst
public final H2AsyncClientBuilder addExecInterceptorFirst(java.lang.String name, AsyncExecChainHandler interceptor)
Add an interceptor to the head of the processing list.
-
addExecInterceptorLast
public final H2AsyncClientBuilder addExecInterceptorLast(java.lang.String name, AsyncExecChainHandler interceptor)
Add an interceptor to the tail of the processing list.
-
addRequestInterceptorFirst
public final H2AsyncClientBuilder addRequestInterceptorFirst(org.apache.hc.core5.http.HttpRequestInterceptor interceptor)
Adds this protocol interceptor to the head of the protocol processing list.
-
addRequestInterceptorLast
public final H2AsyncClientBuilder addRequestInterceptorLast(org.apache.hc.core5.http.HttpRequestInterceptor interceptor)
Adds this protocol interceptor to the tail of the protocol processing list.
-
setRetryStrategy
public final H2AsyncClientBuilder setRetryStrategy(HttpRequestRetryStrategy retryStrategy)
AssignsHttpRequestRetryStrategy
instance.Please note this value can be overridden by the
disableAutomaticRetries()
method.
-
setRedirectStrategy
public H2AsyncClientBuilder setRedirectStrategy(RedirectStrategy redirectStrategy)
AssignsRedirectStrategy
instance.Please note this value can be overridden by the
disableRedirectHandling()
method.
-
setSchemePortResolver
public final H2AsyncClientBuilder setSchemePortResolver(SchemePortResolver schemePortResolver)
AssignsSchemePortResolver
instance.
-
setDnsResolver
public final H2AsyncClientBuilder setDnsResolver(DnsResolver dnsResolver)
AssignsDnsResolver
instance.
-
setTlsStrategy
public final H2AsyncClientBuilder setTlsStrategy(org.apache.hc.core5.http.nio.ssl.TlsStrategy tlsStrategy)
AssignsTlsStrategy
instance.
-
setThreadFactory
public final H2AsyncClientBuilder setThreadFactory(java.util.concurrent.ThreadFactory threadFactory)
AssignsThreadFactory
instance.
-
setUserAgent
public final H2AsyncClientBuilder setUserAgent(java.lang.String userAgent)
AssignsUser-Agent
value.
-
setDefaultHeaders
public final H2AsyncClientBuilder setDefaultHeaders(java.util.Collection<? extends org.apache.hc.core5.http.Header> defaultHeaders)
Assigns default request header values.
-
setRoutePlanner
public final H2AsyncClientBuilder setRoutePlanner(HttpRoutePlanner routePlanner)
AssignsHttpRoutePlanner
instance.
-
setDefaultCredentialsProvider
public final H2AsyncClientBuilder 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 H2AsyncClientBuilder 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 H2AsyncClientBuilder 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.
-
setDefaultCookieStore
public final H2AsyncClientBuilder setDefaultCookieStore(CookieStore cookieStore)
Assigns defaultCookieStore
instance which will be used for request execution if not explicitly set in the client execution context.
-
setDefaultRequestConfig
public final H2AsyncClientBuilder setDefaultRequestConfig(RequestConfig config)
Assigns defaultRequestConfig
instance which will be used for request execution if not explicitly set in the client execution context.
-
setConnectionConfigResolver
public final H2AsyncClientBuilder setConnectionConfigResolver(org.apache.hc.core5.function.Resolver<org.apache.hc.core5.http.HttpHost,ConnectionConfig> connectionConfigResolver)
AssignsResolver
forConnectionConfig
on a per host basis.- Since:
- 5.2
-
setDefaultConnectionConfig
public final H2AsyncClientBuilder setDefaultConnectionConfig(ConnectionConfig connectionConfig)
Assigns the sameConnectionConfig
for all hosts.- Since:
- 5.2
-
useSystemProperties
public final H2AsyncClientBuilder useSystemProperties()
Use system properties when creating and configuring default implementations.
-
disableRedirectHandling
public final H2AsyncClientBuilder disableRedirectHandling()
Disables automatic redirect handling.
-
disableAutomaticRetries
public final H2AsyncClientBuilder disableAutomaticRetries()
Disables automatic request recovery and re-execution.
-
disableCookieManagement
public final H2AsyncClientBuilder disableCookieManagement()
Disables state (cookie) management.
-
disableAuthCaching
public final H2AsyncClientBuilder disableAuthCaching()
Disables authentication scheme caching.
-
evictIdleConnections
public final H2AsyncClientBuilder 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.
-
customizeExecChain
@Internal protected void customizeExecChain(org.apache.hc.core5.http.config.NamedElementChain<AsyncExecChainHandler> 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 CloseableHttpAsyncClient build()
-
getProperty
private static java.lang.String getProperty(java.lang.String key, java.lang.String defaultValue)
-
-