public interface AsyncHttpClient extends Closeable
AsyncHttpClient c = new AsyncHttpClient();
Future<Response> f = c.prepareGet(TARGET_URL).execute();
AsyncHandler or its abstract implementation, AsyncCompletionHandler
AsyncHttpClient c = new AsyncHttpClient();
Future<Response> f = c.prepareGet(TARGET_URL).execute(new AsyncCompletionHandler<Response>() {
@Override
public Response onCompleted(Response response) throws IOException {
// Do something
return response;
}
@Override
public void onThrowable(Throwable t) {
}
});
Response response = f.get();
// We are just interested in retrieving the status code.
Future<Integer> f = c.prepareGet(TARGET_URL).execute(new AsyncCompletionHandler<Integer>() {
@Override
public Integer onCompleted(Response response) throws IOException {
// Do something
return response.getStatusCode();
}
@Override
public void onThrowable(Throwable t) {
}
});
Integer statusCode = f.get();
The AsyncCompletionHandler.onCompleted(Response) method will be invoked once the http response has been fully read.
The Response object includes the http headers and the response body. Note that the entire response will be buffered in memory.
AsyncHandler
AsyncHttpClient c = new AsyncHttpClient();
Future<String> f = c.prepareGet(TARGET_URL).execute(new AsyncHandler<String>() {
private StringBuilder builder = new StringBuilder();
@Override
public STATE onStatusReceived(HttpResponseStatus s) throws Exception {
// return STATE.CONTINUE or STATE.ABORT
return STATE.CONTINUE
}
@Override
public STATE onHeadersReceived(HttpResponseHeaders bodyPart) throws Exception {
// return STATE.CONTINUE or STATE.ABORT
return STATE.CONTINUE
}
@Override
public STATE onBodyPartReceived(HttpResponseBodyPart bodyPart) throws Exception {
builder.append(new String(bodyPart));
// return STATE.CONTINUE or STATE.ABORT
return STATE.CONTINUE
}
@Override
public String onCompleted() throws Exception {
// Will be invoked once the response has been fully read or a ResponseComplete exception
// has been thrown.
return builder.toString();
}
@Override
public void onThrowable(Throwable t) {
}
});
String bodyResponse = f.get();
You can asynchronously process the response status, headers and body and decide when to
stop processing the response by returning a new AsyncHandler.State.ABORT at any moment.
This class can also be used without the need of AsyncHandler.
AsyncHttpClient c = new AsyncHttpClient();
Future<Response> f = c.prepareGet(TARGET_URL).execute();
Response r = f.get();
Finally, you can configure the AsyncHttpClient using an DefaultAsyncHttpClientConfig instance.
AsyncHttpClient c = new AsyncHttpClient(new AsyncHttpClientConfig.Builder().setRequestTimeoutInMs(...).build());
Future<Response> f = c.prepareGet(TARGET_URL).execute();
Response r = f.get();
DefaultAsyncHttpClientConfig.getReadTimeout()
expires. This object can hold many persistent connections to different hosts.| Modifier and Type | Method and Description |
|---|---|
ListenableFuture<Response> |
executeRequest(Request request)
Execute an HTTP request.
|
<T> ListenableFuture<T> |
executeRequest(Request request,
AsyncHandler<T> handler)
Execute an HTTP request.
|
ListenableFuture<Response> |
executeRequest(RequestBuilder requestBuilder)
Execute an HTTP request.
|
<T> ListenableFuture<T> |
executeRequest(RequestBuilder requestBuilder,
AsyncHandler<T> handler)
Execute an HTTP request.
|
void |
flushChannelPoolPartitions(Predicate<Object> predicate)
Flush ChannelPool partitions based on a predicate
|
ClientStats |
getClientStats()
Return details about pooled connections.
|
AsyncHttpClientConfig |
getConfig()
Return the config associated to this client.
|
boolean |
isClosed()
Return true if closed
|
BoundRequestBuilder |
prepare(String method,
String url)
Prepare an HTTP client request.
|
BoundRequestBuilder |
prepareConnect(String url)
Prepare an HTTP client CONNECT request.
|
BoundRequestBuilder |
prepareDelete(String url)
Prepare an HTTP client DELETE request.
|
BoundRequestBuilder |
prepareGet(String url)
Prepare an HTTP client GET request.
|
BoundRequestBuilder |
prepareHead(String url)
Prepare an HTTP client HEAD request.
|
BoundRequestBuilder |
prepareOptions(String url)
Prepare an HTTP client OPTIONS request.
|
BoundRequestBuilder |
preparePatch(String url)
Prepare an HTTP client PATCH request.
|
BoundRequestBuilder |
preparePost(String url)
Prepare an HTTP client POST request.
|
BoundRequestBuilder |
preparePut(String url)
Prepare an HTTP client PUT request.
|
BoundRequestBuilder |
prepareRequest(Request request)
Construct a
RequestBuilder using a Request |
BoundRequestBuilder |
prepareRequest(RequestBuilder requestBuilder)
Construct a
RequestBuilder using a RequestBuilder |
BoundRequestBuilder |
prepareTrace(String url)
Prepare an HTTP client TRACE request.
|
AsyncHttpClient |
setSignatureCalculator(SignatureCalculator signatureCalculator)
Set default signature calculator to use for requests built by this client instance
|
boolean isClosed()
AsyncHttpClient setSignatureCalculator(SignatureCalculator signatureCalculator)
signatureCalculator - a signature calculatorRequestBuilderBoundRequestBuilder prepare(String method, String url)
method - HTTP request method type. MUST BE in upper caseurl - A well formed URL.RequestBuilderBoundRequestBuilder prepareGet(String url)
url - A well formed URL.RequestBuilderBoundRequestBuilder prepareConnect(String url)
url - A well formed URL.RequestBuilderBoundRequestBuilder prepareOptions(String url)
url - A well formed URL.RequestBuilderBoundRequestBuilder prepareHead(String url)
url - A well formed URL.RequestBuilderBoundRequestBuilder preparePost(String url)
url - A well formed URL.RequestBuilderBoundRequestBuilder preparePut(String url)
url - A well formed URL.RequestBuilderBoundRequestBuilder prepareDelete(String url)
url - A well formed URL.RequestBuilderBoundRequestBuilder preparePatch(String url)
url - A well formed URL.RequestBuilderBoundRequestBuilder prepareTrace(String url)
url - A well formed URL.RequestBuilderBoundRequestBuilder prepareRequest(Request request)
RequestBuilder using a Requestrequest - a RequestRequestBuilderBoundRequestBuilder prepareRequest(RequestBuilder requestBuilder)
RequestBuilder using a RequestBuilderrequestBuilder - a RequestBuilderRequestBuilder<T> ListenableFuture<T> executeRequest(Request request, AsyncHandler<T> handler)
T - Type of the value that will be returned by the associated Futurerequest - Requesthandler - an instance of AsyncHandlerFuture of type T<T> ListenableFuture<T> executeRequest(RequestBuilder requestBuilder, AsyncHandler<T> handler)
T - Type of the value that will be returned by the associated FuturerequestBuilder - RequestBuilderhandler - an instance of AsyncHandlerFuture of type TListenableFuture<Response> executeRequest(Request request)
ListenableFuture<Response> executeRequest(RequestBuilder requestBuilder)
requestBuilder - RequestBuilderFuture of type ResponseClientStats getClientStats()
ClientStatsvoid flushChannelPoolPartitions(Predicate<Object> predicate)
predicate - the predicateAsyncHttpClientConfig getConfig()
Copyright © 2024. All rights reserved.