AsyncHttpClient的介绍和使用

xiaoxiao2021-02-28  76

GitHub 地址:https://github.com/AsyncHttpClient/async-http-client

AsyncHttpClient目前版本2.1,内部采用Netty进行网络请求,因此比HttpClient更加优秀

maven

<dependency> <groupId>org.asynchttpclient</groupId> <artifactId>async-http-client</artifactId> <version>2.1.0-alpha21</version> </dependency>

实例:

AsyncHttpClient asyncHttpClient = new DefaultAsyncHttpClient(); Future<Response> f = asyncHttpClient.prepareGet("http://www.example.com/").execute(); Response r = f.get();

测试使用

public class AsyncHttpUtil { public static Future<Response> get(String url, AsyncCompletionHandler<Response> completionHandler){ AsyncHttpClient asyncHttpClient = new DefaultAsyncHttpClient(new DefaultAsyncHttpClientConfig.Builder() .setConnectTimeout(10000) .setRequestTimeout(10000) .build()); RequestBuilder builder=new RequestBuilder(); builder.setUrl(url); builder.addQueryParam("name","test"); return asyncHttpClient.executeRequest(builder.build(),completionHandler); } public static void main(String[] args) { Future<Response> future= AsyncHttpUtil.get("http://www.baidu.com", new AsyncCompletionHandler<Response>() { @Override public Response onCompleted(Response response) throws Exception { if(response.hasResponseStatus()){ System.out.println("1111"); System.out.println(response.getResponseBody()); } return response; } @Override public void onThrowable(Throwable t) { super.onThrowable(t); } }); try { Response response= future.get(); } catch (InterruptedException e) { e.printStackTrace(); } catch (ExecutionException e) { e.printStackTrace(); } } }

转载请注明原文地址: https://www.6miu.com/read-72129.html

最新回复(0)