Class H2AsyncClientBuilder

  • Direct Known Subclasses:
    CachingH2AsyncClientBuilder

    public class H2AsyncClientBuilder
    extends java.lang.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 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
      • authSchemeRegistry

        private org.apache.hc.core5.http.config.Lookup<AuthSchemeFactory> authSchemeRegistry
      • cookieSpecRegistry

        private org.apache.hc.core5.http.config.Lookup<CookieSpecFactory> cookieSpecRegistry
      • 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
      • 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
    • Constructor Detail

      • H2AsyncClientBuilder

        protected H2AsyncClientBuilder()
    • Method Detail

      • 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.
      • 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 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​(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.
      • 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.
      • setTlsStrategy

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

        public final H2AsyncClientBuilder setThreadFactory​(java.util.concurrent.ThreadFactory threadFactory)
        Assigns ThreadFactory instance.
      • setUserAgent

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

        public final H2AsyncClientBuilder setDefaultHeaders​(java.util.Collection<? extends org.apache.hc.core5.http.Header> defaultHeaders)
        Assigns default request header values.
      • 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
      • 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 of Closeable resources to be managed by the client.

        For internal use.

      • getProperty

        private static java.lang.String getProperty​(java.lang.String key,
                                                    java.lang.String defaultValue)