@Contract(threading=SAFE_CONDITIONAL) public final class MinimalHttpAsyncClient extends CloseableHttpAsyncClient
CloseableHttpAsyncClient
. This client is
optimized for HTTP/1.1 and HTTP/2 message transport and does not support
advanced HTTP protocol functionality such as request execution via a proxy,
state management, authentication and request redirects.
Concurrent message exchanges executed by this client will get assigned to separate connections leased from the connection pool.
public Cancellable execute(AsyncClientExchangeHandler exchangeHandler, HandlerFactory<AsyncPushConsumer> pushHandlerFactory, HttpContext context)
public final Future<AsyncClientEndpoint> lease(HttpHost host, FutureCallback<AsyncClientEndpoint> callback)
public Future<AsyncClientEndpoint> lease(HttpHost host, HttpContext context, FutureCallback<AsyncClientEndpoint> callback)
protected <T> Future<T> doExecute(HttpHost httpHost, AsyncRequestProducer requestProducer, AsyncResponseConsumer<T> responseConsumer, HandlerFactory<AsyncPushConsumer> pushHandlerFactory, HttpContext context, FutureCallback<T> callback)
doExecute
in class CloseableHttpAsyncClient
public final Cancellable execute(AsyncClientExchangeHandler exchangeHandler)
public final void awaitShutdown(TimeValue waitTime) throws InterruptedException
awaitShutdown
in class CloseableHttpAsyncClient
InterruptedException
public void close()
AutoCloseable
try
-with-resources statement.
While this interface method is declared to throw Exception
, implementers are
strongly encouraged to declare concrete implementations of the close
method to
throw more specific exceptions, or to throw no exception at all if the close operation cannot
fail.
Implementers of this interface are also strongly advised to not have the close
method
throw InterruptedException
.
This exception interacts with a thread's interrupted status.
Note that unlike the close
method of Closeable
,
this close
method is not required to be idempotent. In other words, calling this
close
method more than once may have some visible side effect, unlike
Closeable.close
which is required to have no effect if called more than once.
However, implementers of this interface are strongly encouraged to make their close
methods idempotent.
public final void close(CloseMode closeMode)
ModalCloseable
closeMode
- How to close the receiver.public final IOReactorStatus getStatus()
getStatus
in class CloseableHttpAsyncClient
public final void initiateShutdown()
initiateShutdown
in class CloseableHttpAsyncClient
public void register(String hostname, String uriPattern, Supplier<AsyncPushConsumer> supplier)
register
in class CloseableHttpAsyncClient
public final void start()
start
in class CloseableHttpAsyncClient