Home > Java Core > How to create an asynchronous HTTP call in JAVA

How to create an asynchronous HTTP call in JAVA

apache

This tutorial explains How to create an asynchronous HTTP call in JAVA.

What is asynchronous HTTP call?

Asynchronous HTTP Request call allows us to process an HTTP call using non-blocking I/O in a separate thread. The main use for Asynchronous HTTP call is where the client is calling a server with a delayed response, which may result in the client blocking the server for a long time. So to avoid such type of call we generally prefer to use the Asynchronous HTTP call.

private static boolean makeAsyncCall(final String URL) throws Exception{
	CloseableHttpAsyncClient httpclient = HttpAsyncClients.createDefault();
	
	boolean success = false;
	try {
		httpclient.start();
		HttpGet request = new HttpGet(URL);
		Future<HttpResponse> future = httpclient.execute(request, null);
		HttpResponse response = future.get(5,TimeUnit.SECONDS);
		int statusCode = response.getStatusLine().getStatusCode();

		LOGGER.info("responseCode-->"+statusCode+" for mailerURL : "+URL);
		
		if (statusCode == HttpStatus.SC_OK) {
			success = true;
		}
	} catch (Exception e) {
		LOGGER.info("Exception occured ",e);
	}finally {
		httpclient.close();
	} 
	return success;
}

public static void main(String[] args) {
	try {
		makeAsyncCall("http://my-URL");
	} catch (Exception e) {
		e.printStackTrace();
	}
}