It uses java.nio to manage connections. All the connections are thus managed on a single thread, rather than one per thread. NIO is extremely efficient.
// url is the URL to download. The callback will be invoked on the UI thread // once the download is complete. AsyncHttpClient.get(url, new AsyncHttpClient.StringCallback() { @Override // Callback is invoked with any exceptions/errors, and the result, if available. public void onCompleted(Exception e, String result) { if (e != null) { e.printStackTrace(); return; } System.out.println("I got a string: " + result); } });
AsyncHttpClient.get(url, filename, new AsyncHttpClient.FileCallback() { @Override public void onCompleted(Exception e, File result) { if (e != null) { e.printStackTrace(); return; } System.out.println("my file is available at: " + result.getAbsolutePath()); } });
// listen on port 5000 AsyncHttpServer mServer = new AsyncHttpServer(5000); mServer.get("/", new HttpServerRequestCallback() { @Override public void onRequest(AsyncHttpServerRequest request, AsyncHttpServerResponse response) { response.send("Hello!!!"); } }); // browsing http://localhost:5000 will return Hello!!!