Example usage for org.apache.http.nio.client HttpAsyncClient execute

List of usage examples for org.apache.http.nio.client HttpAsyncClient execute

Introduction

In this page you can find the example usage for org.apache.http.nio.client HttpAsyncClient execute.

Prototype

Future<HttpResponse> execute(HttpUriRequest request, FutureCallback<HttpResponse> callback);

Source Link

Document

Initiates asynchronous HTTP request execution.

Usage

From source file:com.example.AsyncClientHttpExchange.java

public static void main(String[] args) throws Exception {
    HttpAsyncClient httpclient = new DefaultHttpAsyncClient();
    httpclient.start();// w  w w  .j  ava2  s.c o  m
    try {

        ArrayList<Future<HttpResponse>> response = new ArrayList<Future<HttpResponse>>();

        ArrayList<String> sites = new ArrayList<String>();

        sites.add("MLA");
        sites.add("MLB");
        sites.add("MLU");
        sites.add("MLV");

        for (String site : sites) {
            HttpGet request = new HttpGet("https://api.mercadolibre.com/sites/" + site);
            Future<HttpResponse> r = httpclient.execute(request, null);
            response.add(r);
        }

        System.out.println("lalala........");
        System.out.println("lalala........");
        System.out.println("lalala........");

        for (Future<HttpResponse> future : response) {
            HttpResponse r = future.get();
            System.out.println("Response: " + r.getStatusLine());
            System.out.println("Body : " + convertStreamToString(r.getEntity().getContent()));
        }

    } finally {
        httpclient.shutdown();
    }
    System.out.println("Done");
}

From source file:com.example.AsyncClientHttpExchangeFutureCallback.java

public static void main(String[] args) throws Exception {
    HttpAsyncClient httpclient = new DefaultHttpAsyncClient();
    httpclient.getParams().setIntParameter(CoreConnectionPNames.SO_TIMEOUT, 3000)
            .setIntParameter(CoreConnectionPNames.CONNECTION_TIMEOUT, 3000)
            .setIntParameter(CoreConnectionPNames.SOCKET_BUFFER_SIZE, 8 * 1024)
            .setBooleanParameter(CoreConnectionPNames.TCP_NODELAY, true);

    httpclient.start();/* w w  w . j  a  v  a 2s.c om*/
    try {
        HttpGet[] requests = new HttpGet[] { new HttpGet("http://www.apache.org/"),
                new HttpGet("https://www.verisign.com/"), new HttpGet("http://www.google.com/") };
        final CountDownLatch latch = new CountDownLatch(requests.length);
        for (final HttpGet request : requests) {
            httpclient.execute(request, new FutureCallback<HttpResponse>() {

                public void completed(final HttpResponse response) {
                    latch.countDown();
                    System.out.println(request.getRequestLine() + "->" + response.getStatusLine());
                }

                public void failed(final Exception ex) {
                    latch.countDown();
                    System.out.println(request.getRequestLine() + "->" + ex);
                }

                public void cancelled() {
                    latch.countDown();
                    System.out.println(request.getRequestLine() + " cancelled");
                }

            });
        }
        latch.await();
        System.out.println("Shutting down");
    } finally {
        httpclient.shutdown();
    }
    System.out.println("Done");
}

From source file:org.jenkinsci.plugins.relution_publisher.net.requests.EntityRequest.java

@Override
public Future<HttpResponse> execute(final HttpAsyncClient httpClient) {

    final HttpUriRequest request = this.createRequest();
    return httpClient.execute(request, null);
}

From source file:io.wcm.caravan.io.http.impl.ResilientHttpImpl.java

private Observable<Response> getHttpObservable(String serviceName, String urlPrefix, Request request) {
    return Observable.<Response>create(new Observable.OnSubscribe<Response>() {

        @Override//from  www. j  a  v a 2  s. c om
        public void call(final Subscriber<? super Response> subscriber) {
            HttpUriRequest httpRequest = RequestUtil.buildHttpRequest(urlPrefix, request);

            if (log.isDebugEnabled()) {
                log.debug("Execute: " + httpRequest.getURI() + "\n" + request.toString());
            }

            HttpAsyncClient httpClient = httpClientFactory.getAsync(httpRequest.getURI());
            httpClient.execute(httpRequest, new FutureCallback<HttpResponse>() {

                @Override
                public void completed(HttpResponse result) {
                    StatusLine status = result.getStatusLine();
                    HttpEntity entity = result.getEntity();
                    try {
                        if (status.getStatusCode() >= 500) {
                            subscriber.onError(new IllegalResponseRuntimeException(serviceName, request,
                                    httpRequest.getURI().toString(), status.getStatusCode(),
                                    EntityUtils.toString(entity), "Executing '" + httpRequest.getURI()
                                            + "' failed: " + result.getStatusLine()));
                            EntityUtils.consumeQuietly(entity);
                        } else {
                            Response response = Response.create(status.getStatusCode(),
                                    status.getReasonPhrase(), RequestUtil.toHeadersMap(result.getAllHeaders()),
                                    entity.getContent(),
                                    entity.getContentLength() > 0 ? (int) entity.getContentLength() : null);
                            subscriber.onNext(response);
                            subscriber.onCompleted();
                        }
                    } catch (Throwable ex) {
                        subscriber.onError(new IOException(
                                "Reading response of '" + httpRequest.getURI() + "' failed.", ex));
                        EntityUtils.consumeQuietly(entity);
                    }
                }

                @Override
                public void failed(Exception ex) {
                    if (ex instanceof SocketTimeoutException) {
                        subscriber.onError(new IOException(
                                "Socket timeout executing '" + httpRequest.getURI() + "'.", ex));
                    } else {
                        subscriber.onError(
                                new IOException("Executing '" + httpRequest.getURI() + "' failed.", ex));
                    }
                }

                @Override
                public void cancelled() {
                    subscriber.onError(new IOException("Getting " + httpRequest.getURI() + " was cancelled."));
                }

            });
        }

    });
}