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

## Class HttpAsyncClients

- java.lang.Object
- - org.apache.hc.client5.http.impl.async.HttpAsyncClients

    public final class HttpAsyncClients
    extends Object

Factory methods for `CloseableHttpAsyncClient` instances.

Since:
  5.0

### Method Summary

All Methods Static Methods Concrete Methods Deprecated Methods
`static CloseableHttpClient` `classic(CloseableHttpAsyncClient client, Timeout operationTimeout)` Creates an `CloseableHttpClient` facade backed by `CloseableHttpAsyncClient` built internally and acting as a compatibility bridge between the classic APIs based on the standard `InputStream` / `OutputStream` model and the underlying asynchronous message transport.
`static CloseableHttpAsyncClient` `createDefault()` Creates `CloseableHttpAsyncClient` instance with default configuration.
`static CloseableHttpAsyncClient` `createHttp2Default()` Creates HTTP/2 `CloseableHttpAsyncClient` instance with default configuration optimized for HTTP/2 protocol and message multiplexing.
`static MinimalH2AsyncClient` `createHttp2Minimal()` Creates `MinimalH2AsyncClient` instance optimized for HTTP/2 multiplexing message transport without advanced HTTP protocol functionality.
`static MinimalH2AsyncClient` `createHttp2Minimal(H2Config h2Config)` Creates `MinimalH2AsyncClient` instance optimized for HTTP/2 multiplexing message transport without advanced HTTP protocol functionality.
`static MinimalH2AsyncClient` `createHttp2Minimal(H2Config h2Config, IOReactorConfig ioReactorConfig)` Creates `MinimalH2AsyncClient` instance optimized for HTTP/2 multiplexing message transport without advanced HTTP protocol functionality.
`static MinimalH2AsyncClient` `createHttp2Minimal(H2Config h2Config, IOReactorConfig ioReactorConfig, DnsResolver dnsResolver, TlsStrategy tlsStrategy)` Creates `MinimalH2AsyncClient` instance optimized for HTTP/2 multiplexing message transport without advanced HTTP protocol functionality.
`static MinimalH2AsyncClient` `createHttp2Minimal(H2Config h2Config, IOReactorConfig ioReactorConfig, TlsStrategy tlsStrategy)` Creates `MinimalH2AsyncClient` instance optimized for HTTP/2 multiplexing message transport without advanced HTTP protocol functionality.
`static CloseableHttpAsyncClient` `createHttp2System()` Creates HTTP/2 `CloseableHttpAsyncClient` instance with default configuration and system properties optimized for HTTP/2 protocol and message multiplexing.
`static MinimalHttpAsyncClient` `createMinimal()` Creates `MinimalHttpAsyncClient` instance optimized for HTTP/1.1 and HTTP/2 message transport without advanced HTTP protocol functionality.
`static MinimalHttpAsyncClient` `createMinimal(AsyncClientConnectionManager connManager)` Creates `MinimalHttpAsyncClient` instance optimized for HTTP/1.1 and HTTP/2 message transport without advanced HTTP protocol functionality.
`static MinimalHttpAsyncClient` `createMinimal(H2Config h2Config, Http1Config h1Config)` Creates `MinimalHttpAsyncClient` instance optimized for HTTP/1.1 and HTTP/2 message transport without advanced HTTP protocol functionality.
`static MinimalHttpAsyncClient` `createMinimal(H2Config h2Config, Http1Config h1Config, IOReactorConfig ioReactorConfig)` Creates `MinimalHttpAsyncClient` instance optimized for HTTP/1.1 and HTTP/2 message transport without advanced HTTP protocol functionality.
`static MinimalHttpAsyncClient` `createMinimal(H2Config h2Config, Http1Config h1Config, IOReactorConfig ioReactorConfig, AsyncClientConnectionManager connmgr)` Creates `MinimalHttpAsyncClient` instance optimized for HTTP/1.1 and HTTP/2 message transport without advanced HTTP protocol functionality.
`static MinimalHttpAsyncClient` `createMinimal(HttpVersionPolicy versionPolicy, H2Config h2Config, Http1Config h1Config, IOReactorConfig ioReactorConfig)` Deprecated. Use `createMinimal(H2Config, Http1Config, IOReactorConfig)`
`static MinimalHttpAsyncClient` `createMinimal(HttpVersionPolicy versionPolicy, H2Config h2Config, Http1Config h1Config, IOReactorConfig ioReactorConfig, AsyncClientConnectionManager connmgr)` Deprecated. Use `createMinimal(H2Config, Http1Config, IOReactorConfig, AsyncClientConnectionManager)`
`static CloseableHttpAsyncClient` `createSystem()` Creates `CloseableHttpAsyncClient` instance with default configuration and system properties.
`static HttpAsyncClientBuilder` `custom()` Creates builder object for construction of custom `CloseableHttpAsyncClient` instances.
`static H2AsyncClientBuilder` `customHttp2()` Creates builder object for construction of custom HTTP/2 `CloseableHttpAsyncClient` instances optimized for HTTP/2 protocol and message multiplexing
`static HandlerFactory<AsyncPushConsumer>` `pushRouter(RequestRouter<Supplier<AsyncPushConsumer>> requestRouter)` Creates `HandlerFactory` backed by a push `RequestRouter`.

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

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

### Method Detail

#### custom

    public static HttpAsyncClientBuilder custom()

Creates builder object for construction of custom `CloseableHttpAsyncClient` instances.

#### createDefault

    public static CloseableHttpAsyncClient createDefault()

Creates `CloseableHttpAsyncClient` instance with default configuration.

#### createSystem

    public static CloseableHttpAsyncClient createSystem()

Creates `CloseableHttpAsyncClient` instance with default configuration and system properties.

#### customHttp2

    public static H2AsyncClientBuilder customHttp2()

Creates builder object for construction of custom HTTP/2 `CloseableHttpAsyncClient` instances optimized for HTTP/2 protocol and message multiplexing

#### createHttp2Default

    public static CloseableHttpAsyncClient createHttp2Default()

Creates HTTP/2 `CloseableHttpAsyncClient` instance with default configuration optimized for HTTP/2 protocol and message multiplexing.

#### createHttp2System

    public static CloseableHttpAsyncClient createHttp2System()

Creates HTTP/2 `CloseableHttpAsyncClient` instance with default configuration and system properties optimized for HTTP/2 protocol and message multiplexing.

#### createMinimal

    @Deprecated
    public static MinimalHttpAsyncClient createMinimal(HttpVersionPolicy versionPolicy,
                                                                   H2Config h2Config,
                                                                   Http1Config h1Config,
                                                                   IOReactorConfig ioReactorConfig,
                                                                   AsyncClientConnectionManager connmgr)

Deprecated. Use `createMinimal(H2Config, Http1Config, IOReactorConfig, AsyncClientConnectionManager)`
Creates `MinimalHttpAsyncClient` instance optimized for HTTP/1.1 and HTTP/2 message transport without advanced HTTP protocol functionality.

#### createMinimal

    public static MinimalHttpAsyncClient createMinimal(H2Config h2Config,
                                                       Http1Config h1Config,
                                                       IOReactorConfig ioReactorConfig,
                                                       AsyncClientConnectionManager connmgr)

Creates `MinimalHttpAsyncClient` instance optimized for HTTP/1.1 and HTTP/2 message transport without advanced HTTP protocol functionality.

Since:
  5.2

#### createMinimal

    @Deprecated
    public static MinimalHttpAsyncClient createMinimal(HttpVersionPolicy versionPolicy,
                                                                   H2Config h2Config,
                                                                   Http1Config h1Config,
                                                                   IOReactorConfig ioReactorConfig)

Deprecated. Use `createMinimal(H2Config, Http1Config, IOReactorConfig)`
Creates `MinimalHttpAsyncClient` instance optimized for HTTP/1.1 and HTTP/2 message transport without advanced HTTP protocol functionality.

#### createMinimal

    public static MinimalHttpAsyncClient createMinimal(H2Config h2Config,
                                                       Http1Config h1Config,
                                                       IOReactorConfig ioReactorConfig)

Creates `MinimalHttpAsyncClient` instance optimized for HTTP/1.1 and HTTP/2 message transport without advanced HTTP protocol functionality.

#### createMinimal

    public static MinimalHttpAsyncClient createMinimal(H2Config h2Config,
                                                       Http1Config h1Config)

Creates `MinimalHttpAsyncClient` instance optimized for HTTP/1.1 and HTTP/2 message transport without advanced HTTP protocol functionality.

#### createMinimal

    public static MinimalHttpAsyncClient createMinimal()

Creates `MinimalHttpAsyncClient` instance optimized for HTTP/1.1 and HTTP/2 message transport without advanced HTTP protocol functionality.

#### createMinimal

    public static MinimalHttpAsyncClient createMinimal(AsyncClientConnectionManager connManager)

Creates `MinimalHttpAsyncClient` instance optimized for HTTP/1.1 and HTTP/2 message transport without advanced HTTP protocol functionality.

#### createHttp2Minimal

    public static MinimalH2AsyncClient createHttp2Minimal(H2Config h2Config,
                                                          IOReactorConfig ioReactorConfig,
                                                          DnsResolver dnsResolver,
                                                          TlsStrategy tlsStrategy)

Creates `MinimalH2AsyncClient` instance optimized for HTTP/2 multiplexing message transport without advanced HTTP protocol functionality.

#### createHttp2Minimal

    public static MinimalH2AsyncClient createHttp2Minimal(H2Config h2Config,
                                                          IOReactorConfig ioReactorConfig,
                                                          TlsStrategy tlsStrategy)

Creates `MinimalH2AsyncClient` instance optimized for HTTP/2 multiplexing message transport without advanced HTTP protocol functionality.

#### createHttp2Minimal

    public static MinimalH2AsyncClient createHttp2Minimal(H2Config h2Config,
                                                          IOReactorConfig ioReactorConfig)

Creates `MinimalH2AsyncClient` instance optimized for HTTP/2 multiplexing message transport without advanced HTTP protocol functionality.

#### createHttp2Minimal

    public static MinimalH2AsyncClient createHttp2Minimal(H2Config h2Config)

Creates `MinimalH2AsyncClient` instance optimized for HTTP/2 multiplexing message transport without advanced HTTP protocol functionality.

#### createHttp2Minimal

    public static MinimalH2AsyncClient createHttp2Minimal()

Creates `MinimalH2AsyncClient` instance optimized for HTTP/2 multiplexing message transport without advanced HTTP protocol functionality.

#### pushRouter

    public static HandlerFactory<AsyncPushConsumer> pushRouter(RequestRouter<Supplier<AsyncPushConsumer>> requestRouter)

Creates `HandlerFactory` backed by a push `RequestRouter`.

Since:
  5.4

#### classic

    @Experimental
    public static CloseableHttpClient classic(CloseableHttpAsyncClient client,
                                                            Timeout operationTimeout)

Creates an `CloseableHttpClient` facade backed by `CloseableHttpAsyncClient` built internally and acting as a compatibility bridge between the classic APIs based on the standard `InputStream` / `OutputStream` model and the underlying asynchronous message transport.

This feature is considered experimental and may be discontinued in the future.

Parameters:
  `client` - async client
  `operationTimeout` - maximum period an operation can block awaiting input / output.
Since:
  5.5