AsyncHttpClient的介绍和使用

来源:互联网 发布:淘宝网不能点击购买 编辑:程序博客网 时间:2024/06/07 21:11

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();        }    }}


原创粉丝点击