org.apache.hc.client5.http.impl.async

## 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

- - ### Constructor Summary

    Constructors
    Modifier | Constructor and Description
    --- | ---
    `protected` | `H2AsyncClientBuilder()`

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `protected void` | `addCloseable(Closeable closeable)` Adds to the list of `Closeable` resources to be managed by the client.
    `H2AsyncClientBuilder` | `addExecInterceptorAfter(String existing, String name, AsyncExecChainHandler interceptor)` Adds this execution interceptor after interceptor with the given name.
    `H2AsyncClientBuilder` | `addExecInterceptorBefore(String existing, String name, AsyncExecChainHandler interceptor)` Adds this execution interceptor before an existing interceptor.
    `H2AsyncClientBuilder` | `addExecInterceptorFirst(String name, AsyncExecChainHandler interceptor)` Add an interceptor to the head of the processing list.
    `H2AsyncClientBuilder` | `addExecInterceptorLast(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.
    `H2AsyncClientBuilder` | `replaceExecInterceptor(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)` Sets `CharCodingConfig` configuration.
    `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.
    `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.
    `H2AsyncClientBuilder` | `setDefaultConnectionConfig(ConnectionConfig connectionConfig)` Assigns the same `ConnectionConfig` for all hosts.
    `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.
    `H2AsyncClientBuilder` | `setDefaultCookieStore(CookieStore cookieStore)` Assigns default `CookieStore` instance which will be used for request execution if not explicitly set in the client execution context.
    `H2AsyncClientBuilder` | `setDefaultCredentialsProvider(CredentialsProvider credentialsProvider)` Assigns default `CredentialsProvider` instance which will be used for request execution if not explicitly set in the client execution context.
    `H2AsyncClientBuilder` | `setDefaultHeaders(Collection<? extends org.apache.hc.core5.http.Header> defaultHeaders)` Assigns default request header values.
    `H2AsyncClientBuilder` | `setDefaultRequestConfig(RequestConfig config)` Assigns default `RequestConfig` instance which will be used for request execution if not explicitly set in the client execution context.
    `H2AsyncClientBuilder` | `setDnsResolver(DnsResolver dnsResolver)` Assigns `DnsResolver` instance.
    `H2AsyncClientBuilder` | `setH2Config(org.apache.hc.core5.http2.config.H2Config h2Config)` Sets `H2Config` configuration.
    `H2AsyncClientBuilder` | `setIOReactorConfig(org.apache.hc.core5.reactor.IOReactorConfig ioReactorConfig)` Sets `IOReactorConfig` configuration.
    `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.
    `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.
    `H2AsyncClientBuilder` | `setIOSessionListener(org.apache.hc.core5.reactor.IOSessionListener ioSessionListener)` Sets `IOSessionListener` listener.
    `H2AsyncClientBuilder` | `setProxyAuthenticationStrategy(AuthenticationStrategy proxyAuthStrategy)` Assigns `AuthenticationStrategy` instance for proxy authentication.
    `H2AsyncClientBuilder` | `setRedirectStrategy(RedirectStrategy redirectStrategy)` Assigns `RedirectStrategy` instance.
    `H2AsyncClientBuilder` | `setRetryStrategy(HttpRequestRetryStrategy retryStrategy)` Assigns `HttpRequestRetryStrategy` instance.
    `H2AsyncClientBuilder` | `setRoutePlanner(HttpRoutePlanner routePlanner)` Assigns `HttpRoutePlanner` instance.
    `H2AsyncClientBuilder` | `setSchemePortResolver(SchemePortResolver schemePortResolver)` Assigns `SchemePortResolver` instance.
    `H2AsyncClientBuilder` | `setTargetAuthenticationStrategy(AuthenticationStrategy targetAuthStrategy)` Assigns `AuthenticationStrategy` instance for target host authentication.
    `H2AsyncClientBuilder` | `setThreadFactory(ThreadFactory threadFactory)` Assigns `ThreadFactory` instance.
    `H2AsyncClientBuilder` | `setTlsStrategy(org.apache.hc.core5.http.nio.ssl.TlsStrategy tlsStrategy)` Assigns `TlsStrategy` instance.
    `H2AsyncClientBuilder` | `setUserAgent(String userAgent)` Assigns `User-Agent` value.
    `H2AsyncClientBuilder` | `useSystemProperties()` Use system properties when creating and configuring default implementations.

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### H2AsyncClientBuilder

          protected H2AsyncClientBuilder()

  - ### Method Detail

    - #### 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()

Copyright © 1999–2021 The Apache Software Foundation. All rights reserved.