zoukankan      html  css  js  c++  java
  • HttpAsyncClient 做并发长连接的一个实例

    HttpAsyncClient 做并发长连接的一个实例
    import java.util.concurrent.CountDownLatch;
    
    import org.apache.http.HttpResponse;
    import org.apache.http.client.config.RequestConfig;
    import org.apache.http.client.methods.HttpGet;
    import org.apache.http.concurrent.FutureCallback;
    import org.apache.http.impl.nio.client.CloseableHttpAsyncClient;
    import org.apache.http.impl.nio.client.HttpAsyncClients;
    
    public class AsyncClientHttpExchangeFutureCallback {
    
     public static void main(final String[] args) throws Exception {
     RequestConfig requestConfig = RequestConfig.custom()
    .setSocketTimeout(300000)
    .setConnectTimeout(300000).build();
     CloseableHttpAsyncClient httpclient = HttpAsyncClients.custom()
    .setDefaultRequestConfig(requestConfig).setMaxConnTotal(1000).setMaxConnPerRoute(1000)//此处为多并发设置
    .build();
     try {
    httpclient.start();
     HttpGet[] requests =new HttpGet[900];
     for (int i = 0; i < 900; i++) {
    
     requests[i] = new HttpGet("http://192.168.71.192:8100/sub?cname="+i);
    
    
    }
     final CountDownLatch latch = new CountDownLatch(requests.length+1);
     for (final HttpGet request: requests) {
     httpclient.execute(request, new FutureCallback<HttpResponse>() {
    
     public void completed(final HttpResponse response) {
    latch.countDown();
     System.out.println(request.getRequestLine() +"->"+ response.getStatusLine());
    }
    
     public void failed(final Exception ex) {
    latch.countDown();
     System.out.println(request.getRequestLine() +"->"+ ex);
    }
    
     public void cancelled() {
    latch.countDown();
     System.out.println(request.getRequestLine() +"cancelled");
    }
    
    });
    }
    latch.await();
     System.out.println("Shutting down");
     } finally {
    httpclient.close();
    }
    System.out.println("Done");
    }
    
    }
  • 相关阅读:
    tomcat 闪退处理
    MVC的各个部分都有那些技术来实现?如何实现?
    jsp和servlet的区别、共同点、各自应用的范围?
    如何从CDN加载jQuery?
    window.onload()函数和jQuery中的document.ready()有什么区别?
    JQuery有几种选择器?
    jQuery 库中的 $() 是什么?
    JS 中 == 和 === 区别是什么?
    如何在JavaScript中每x秒调用一个函数
    undefined,null 和 undeclared 有什么区别?
  • 原文地址:https://www.cnblogs.com/timssd/p/5068190.html
Copyright © 2011-2022 走看看