Async Http Client (Java Library) Cheatsheet

2018




Async Http Client is a high performant Http and WebSocket client library for Java. Async Http Client built on top of Netty and it provides asyc APIs for executing http requests.

Installation

Maven

<!-- https://mvnrepository.com/artifact/org.asynchttpclient/async-http-client -->
<dependency>
    <groupId>org.asynchttpclient</groupId>
    <artifactId>async-http-client</artifactId>
    <version>2.10.0</version>
</dependency>

Gradle

// https://mvnrepository.com/artifact/org.asynchttpclient/async-http-client
compile group: 'org.asynchttpclient', name: 'async-http-client', version: '2.10.0'

GET example

import static org.asynchttpclient.Dsl.asyncHttpClient;

import org.asynchttpclient.AsyncHttpClient;
import org.asynchttpclient.ListenableFuture;
import org.asynchttpclient.Response;

public class AsyncHttpGetExample {
    public static void main(String[] args) {

        AsyncHttpClient asyncHttpClient = asyncHttpClient();

        try {
            ListenableFuture<Response> responseFuture = asyncHttpClient.prepareGet("https://httpbin.org/get").execute();
            Response res = responseFuture.get(); // or handle asynchronously
            System.out.println(res.getResponseBody());
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            try {
                asyncHttpClient.close();
            } catch (Exception closingException) {
                // Ignore
            }
        }

    }
}

POST Example

import static org.asynchttpclient.Dsl.asyncHttpClient;
import static org.asynchttpclient.Dsl.post;

import java.util.concurrent.Future;

import org.asynchttpclient.AsyncHttpClient;
import org.asynchttpclient.Request;
import org.asynchttpclient.Response;

public class AsyncHttpPostExample {
    public static void main(String[] args) {

        AsyncHttpClient asyncHttpClient = asyncHttpClient();
        try {
            String body = "{\n" + 
                    "    \"foo\" : \"bar\"\n" + 
                    "}";
            Request request = post("https://httpbin.org/post").setBody(body).build();
            Future<Response> responseFuture = asyncHttpClient.executeRequest(request);
            Response res = responseFuture.get(); // or handle asynchronously
            System.out.println(res.getResponseBody());
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            try {
                asyncHttpClient.close();
            } catch (Exception closingException) {
                // Ignore
            }
        }

    }
}