public class AsyncHttpClient extends Object
AsyncHttpClient c = new AsyncHttpClient();
    Future<Response> f = c.prepareGet("http://www.ning.com/").execute();
 
 The code above will block until the response is fully received. To execute asynchronous HTTP request, you
 create an AsyncHandler or its abstract implementation, AsyncCompletionHandler
 AsyncHttpClient c = new AsyncHttpClient();
       Future<Response> f = c.prepareGet("http://www.ning.com/").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 to retrieve the status code.
     Future<Integer> f = c.prepareGet("http://www.ning.com/").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(com.ning.http.client.Response) will be invoked once the http response has been fully read, which include
 the http headers and the response body. Note that the entire response will be buffered in memory.
 You can also have more control about the how the response is asynchronously processed by using a AsyncHandler
 AsyncHttpClient c = new AsyncHttpClient();
      Future<String> f = c.prepareGet("http://www.ning.com/").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();
 }
 From any HttpContent sub classes, you can asynchronously process the response status,headers and body and decide when to
 stop the processing the response by throwing a new {link ResponseComplete} 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 AsyncHttpClientConfig instance
 AsyncHttpClient c = new AsyncHttpClient(new AsyncHttpClientConfig.Builder().setRequestTimeoutInMs(...).build());
      Future<Response> f = c.prepareGet(TARGET_URL).execute();
      Response r = f.get();
 
 An instance of this class will cache every HTTP 1.1 connections and close them when the AsyncHttpClientConfig.getIdleConnectionTimeoutInMs()
 expires. This object can hold many persistent connections to different host.| Modifier and Type | Class and Description | 
|---|---|
class  | 
AsyncHttpClient.BoundRequestBuilder  | 
| Modifier and Type | Field and Description | 
|---|---|
protected SignatureCalculator | 
signatureCalculator
Default signature calculator to use for all requests constructed by this client instance. 
 | 
| Constructor and Description | 
|---|
AsyncHttpClient()
Create a new HTTP Asynchronous Client using the default  
AsyncHttpClientConfig configuration. | 
AsyncHttpClient(AsyncHttpClientConfig config)
Create a new HTTP Asynchronous Client using a  
AsyncHttpClientConfig configuration and the
 DEFAULT_PROVIDER | 
AsyncHttpClient(AsyncHttpProvider provider)
Create a new HTTP Asynchronous Client using an implementation of  
AsyncHttpProvider and
 the default AsyncHttpClientConfig configuration. | 
AsyncHttpClient(AsyncHttpProvider httpProvider,
               AsyncHttpClientConfig config)
Create a new HTTP Asynchronous Client using a  
AsyncHttpClientConfig configuration and
 and a AsyncHttpProvider. | 
AsyncHttpClient(String providerClass,
               AsyncHttpClientConfig config)
Create a new HTTP Asynchronous Client using a  
AsyncHttpClientConfig configuration and
 and a AsyncHttpProvider class' name. | 
protected SignatureCalculator signatureCalculator
public AsyncHttpClient()
AsyncHttpClientConfig configuration. The
 default AsyncHttpProvider will be used (NettyAsyncHttpProviderpublic AsyncHttpClient(AsyncHttpProvider provider)
AsyncHttpProvider and
 the default AsyncHttpClientConfig configuration.provider - a AsyncHttpProviderpublic AsyncHttpClient(AsyncHttpClientConfig config)
AsyncHttpClientConfig configuration and the
 DEFAULT_PROVIDERconfig - a AsyncHttpClientConfigpublic AsyncHttpClient(AsyncHttpProvider httpProvider, AsyncHttpClientConfig config)
AsyncHttpClientConfig configuration and
 and a AsyncHttpProvider.config - a AsyncHttpClientConfighttpProvider - a AsyncHttpProviderpublic AsyncHttpClient(String providerClass, AsyncHttpClientConfig config)
AsyncHttpClientConfig configuration and
 and a AsyncHttpProvider class' name.config - a AsyncHttpClientConfigproviderClass - a AsyncHttpProviderpublic AsyncHttpProvider getProvider()
AsyncHttpProviderAsyncHttpProviderpublic void close()
protected void finalize()
                 throws Throwable
public boolean isClosed()
public AsyncHttpClientConfig getConfig()
AsyncHttpClientConfigAsyncHttpClientConfigpublic AsyncHttpClient setSignatureCalculator(SignatureCalculator signatureCalculator)
public AsyncHttpClient.BoundRequestBuilder prepareGet(String url)
url - A well formed URL.RequestBuilderpublic AsyncHttpClient.BoundRequestBuilder prepareConnect(String url)
url - A well formed URL.RequestBuilderpublic AsyncHttpClient.BoundRequestBuilder prepareOptions(String url)
url - A well formed URL.RequestBuilderpublic AsyncHttpClient.BoundRequestBuilder prepareHead(String url)
url - A well formed URL.RequestBuilderpublic AsyncHttpClient.BoundRequestBuilder preparePost(String url)
url - A well formed URL.RequestBuilderpublic AsyncHttpClient.BoundRequestBuilder preparePut(String url)
url - A well formed URL.RequestBuilderpublic AsyncHttpClient.BoundRequestBuilder prepareDelete(String url)
url - A well formed URL.RequestBuilderpublic AsyncHttpClient.BoundRequestBuilder prepareRequest(Request request)
RequestBuilder using a Requestrequest - a RequestRequestBuilderpublic <T> ListenableFuture<T> executeRequest(Request request, AsyncHandler<T> handler) throws IOException
T - Type of the value that will be returned by the associated Futurerequest - Requesthandler - an instance of AsyncHandlerFuture of type TIOExceptionpublic ListenableFuture<Response> executeRequest(Request request) throws IOException
request - RequestFuture of type ResponseIOExceptionprotected AsyncHttpClient.BoundRequestBuilder requestBuilder(String reqType, String url)
protected AsyncHttpClient.BoundRequestBuilder requestBuilder(Request prototype)
Copyright © 2015. All rights reserved.