Class H2AsyncClientBuilder

java.lang.Object
org.apache.hc.client5.http.impl.async.H2AsyncClientBuilder
Direct Known Subclasses:
CachingH2AsyncClientBuilder

public class H2AsyncClientBuilder extends Object
Builder for HTTP/2 only CloseableHttpAsyncClient 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
  • Field Details

    • 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

    • responseInterceptors

    • 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 String userAgent
    • defaultHeaders

      private 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 ThreadFactory threadFactory
    • closeables

      private List<Closeable> closeables
    • ioReactorExceptionCallback

      private org.apache.hc.core5.function.Callback<Exception> ioReactorExceptionCallback
    • ioSessionDecorator

      private org.apache.hc.core5.function.Decorator<org.apache.hc.core5.reactor.IOSession> ioSessionDecorator
  • Constructor Details

    • H2AsyncClientBuilder

      protected H2AsyncClientBuilder()
  • Method Details

    • create

      public static H2AsyncClientBuilder create()
    • setH2Config

      public final H2AsyncClientBuilder setH2Config(org.apache.hc.core5.http2.config.H2Config h2Config)
      Sets H2Config configuration.
    • setIOReactorConfig

      public final H2AsyncClientBuilder setIOReactorConfig(org.apache.hc.core5.reactor.IOReactorConfig ioReactorConfig)
      Sets IOReactorConfig configuration.
    • setIOSessionListener

      public final H2AsyncClientBuilder setIOSessionListener(org.apache.hc.core5.reactor.IOSessionListener ioSessionListener)
      Sets IOSessionListener listener.
      Since:
      5.2
    • setCharCodingConfig

      public final H2AsyncClientBuilder setCharCodingConfig(org.apache.hc.core5.http.config.CharCodingConfig charCodingConfig)
      Sets CharCodingConfig configuration.
    • setTargetAuthenticationStrategy

      public final H2AsyncClientBuilder setTargetAuthenticationStrategy(AuthenticationStrategy targetAuthStrategy)
      Assigns AuthenticationStrategy instance for target host authentication.
    • setProxyAuthenticationStrategy

      public final H2AsyncClientBuilder setProxyAuthenticationStrategy(AuthenticationStrategy proxyAuthStrategy)
      Assigns AuthenticationStrategy instance for proxy authentication.
    • setIoReactorExceptionCallback

      public final H2AsyncClientBuilder setIoReactorExceptionCallback(org.apache.hc.core5.function.Callback<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 the IOSession 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(String existing, String name, AsyncExecChainHandler interceptor)
      Adds this execution interceptor before an existing interceptor.
    • addExecInterceptorAfter

      public final H2AsyncClientBuilder addExecInterceptorAfter(String existing, String name, AsyncExecChainHandler interceptor)
      Adds this execution interceptor after interceptor with the given name.
    • replaceExecInterceptor

      public final H2AsyncClientBuilder replaceExecInterceptor(String existing, AsyncExecChainHandler interceptor)
      Replace an existing interceptor with the given name with new interceptor.
    • addExecInterceptorFirst

      public final H2AsyncClientBuilder addExecInterceptorFirst(String name, AsyncExecChainHandler interceptor)
      Add an interceptor to the head of the processing list.
    • addExecInterceptorLast

      public final H2AsyncClientBuilder addExecInterceptorLast(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)
      Assigns HttpRequestRetryStrategy instance.

      Please note this value can be overridden by the disableAutomaticRetries() method.

    • setRedirectStrategy

      public H2AsyncClientBuilder setRedirectStrategy(RedirectStrategy redirectStrategy)
      Assigns RedirectStrategy instance.

      Please note this value can be overridden by the disableRedirectHandling() method.

    • setSchemePortResolver

      public final H2AsyncClientBuilder setSchemePortResolver(SchemePortResolver schemePortResolver)
      Assigns SchemePortResolver instance.
    • setDnsResolver

      public final H2AsyncClientBuilder setDnsResolver(DnsResolver dnsResolver)
      Assigns DnsResolver instance.
    • setTlsStrategy

      public final H2AsyncClientBuilder setTlsStrategy(org.apache.hc.core5.http.nio.ssl.TlsStrategy tlsStrategy)
      Assigns TlsStrategy instance.
    • setThreadFactory

      public final H2AsyncClientBuilder setThreadFactory(ThreadFactory threadFactory)
      Assigns ThreadFactory instance.
    • setUserAgent

      public final H2AsyncClientBuilder setUserAgent(String userAgent)
      Assigns User-Agent value.
    • setDefaultHeaders

      public final H2AsyncClientBuilder setDefaultHeaders(Collection<? extends org.apache.hc.core5.http.Header> defaultHeaders)
      Assigns default request header values.
    • setRoutePlanner

      public final H2AsyncClientBuilder setRoutePlanner(HttpRoutePlanner routePlanner)
      Assigns HttpRoutePlanner instance.
    • setDefaultCredentialsProvider

      public final H2AsyncClientBuilder 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 H2AsyncClientBuilder setDefaultAuthSchemeRegistry(org.apache.hc.core5.http.config.Lookup<AuthSchemeFactory> authSchemeRegistry)
      Assigns default AuthScheme 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 default CookieSpec 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 default CookieStore 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 default RequestConfig 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)
      Assigns Resolver for ConnectionConfig on a per host basis.
      Since:
      5.2
    • setDefaultConnectionConfig

      public final H2AsyncClientBuilder setDefaultConnectionConfig(ConnectionConfig connectionConfig)
      Assigns the same ConnectionConfig 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(Closeable closeable)
      Adds to the list of Closeable resources to be managed by the client.

      For internal use.

    • build

      public CloseableHttpAsyncClient build()
    • getProperty

      private static String getProperty(String key, String defaultValue)