<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    少年阿賓

    那些青春的歲月

      BlogJava :: 首頁 :: 聯(lián)系 :: 聚合  :: 管理
      500 Posts :: 0 Stories :: 135 Comments :: 0 Trackbacks
    View Code
     package generate.httpclient;
     
     import java.io.ByteArrayOutputStream;
     import java.io.IOException;
     import java.io.InputStream;
     import java.util.ArrayList;
     import java.util.HashMap;
     import java.util.List;
     import java.util.Map;
     import java.util.concurrent.CountDownLatch;
     
     import org.apache.http.HttpResponse;
     import org.apache.http.client.methods.HttpGet;
     import org.apache.http.concurrent.FutureCallback;
     import org.apache.http.impl.nio.client.DefaultHttpAsyncClient;
     import org.apache.http.nio.client.HttpAsyncClient;
     import org.apache.http.nio.reactor.IOReactorException;
     
     public class AsynClient{
         /**
          * @param args
          * @throws IOReactorException
          * @throws InterruptedException
          */
         private List<String> urls;
         private HandlerFailThread failHandler;
         public AsynClient(List<String> list){
             failHandler=new HandlerFailThread();
             urls=list;
         }
         public Map<String,String> asynGet() throws IOReactorException,
                 InterruptedException {
             final HttpAsyncClient httpclient = new DefaultHttpAsyncClient();
             httpclient.start();
             int urlLength=urls.size();
             HttpGet[] requests = new HttpGet[urlLength];
             int i=0;
             for(String url : urls){
                 requests[i]=new HttpGet(url);
                 i++;
             }
             final CountDownLatch latch = new CountDownLatch(requests.length);
             final Map<String, String> responseMap=new HashMap<String, String>();
             try {
                 for (final HttpGet request : requests) {
                     httpclient.execute(request, new FutureCallback<HttpResponse>() {
     
                         public void completed(final HttpResponse response) {
                             latch.countDown();
                             responseMap.put(request.getURI().toString(), response.getStatusLine().toString());
                             try {
                                 System.out.println(request.getRequestLine() + "->"
                                         + response.getStatusLine()+"->");
                                 //+readInputStream(response.getEntity().getContent())
                                
                             } catch (IllegalStateException e) {
                                 failHandler.putFailUrl(request.getURI().toString(),
                                         response.getStatusLine().toString());
                                 e.printStackTrace();
                             } catch (Exception e) {
                                 failHandler.putFailUrl(request.getURI().toString(),
                                         response.getStatusLine().toString());
                                 e.printStackTrace();
                             }
                         }
     
                         public void failed(final Exception ex) {
                             latch.countDown();
                             ex.printStackTrace();
                             failHandler.putFailUrl(request.getURI().toString(),
                                     ex.getMessage());
                         }
     
                         public void cancelled() {
                             latch.countDown();
                         }
     
                     });
                 }
                 System.out.println("Doing...");
             } finally {
                 latch.await();
                 httpclient.shutdown();
             }
             System.out.println("Done");
             failHandler.printFailUrl();
             return responseMap;
         }
         private String readInputStream(InputStream input) throws IOException{
             byte[] buffer = new byte[128];
             int len = 0;
             ByteArrayOutputStream bytes = new ByteArrayOutputStream();
             while((len = input.read(buffer)) >= 0) {
                 bytes.write(buffer, 0, len);
             }
             return bytes.toString();
         }
         /**
          * Test
          * @param args
          */
         public static void main(String[] args) {
             List<String> urls=new ArrayList<String>();
             urls.add("         urls.add("         urls.add("         for(int i=0;i<10;i++){
                 urls.addAll(urls);
             }
             System.out.println(urls.size());
             AsynClient client=new AsynClient(urls);
             try {
                 client.asynGet();
             } catch (IOReactorException e) {
                 e.printStackTrace();
             } catch (InterruptedException e) {
                 e.printStackTrace();
             }
             System.out.println("done");
         }
     }
    主站蜘蛛池模板: 亚洲男人天堂影院| 久久国产亚洲观看| 亚洲精品动漫免费二区| 无码国产精品一区二区免费式直播 | 性感美女视频免费网站午夜| 亚洲日韩国产精品无码av| 1000部啪啪未满十八勿入免费| 亚洲电影国产一区| 亚洲免费视频网站| 亚洲视频免费播放| 一二三四在线观看免费高清中文在线观看 | 亚洲AV永久无码精品成人| 在线成人精品国产区免费| 国产AV无码专区亚洲AV男同| 一级毛片在线免费观看| 亚洲成年人电影网站| 免费看国产成年无码AV片| 亚洲s码欧洲m码吹潮| 亚洲美日韩Av中文字幕无码久久久妻妇| 污污污视频在线免费观看| 亚洲精品乱码久久久久久久久久久久 | 午夜网站免费版在线观看| 欧洲乱码伦视频免费国产| 亚洲日韩欧洲无码av夜夜摸| 日本免费久久久久久久网站| 内射干少妇亚洲69XXX| 午夜小视频免费观看| 亚欧乱色国产精品免费视频| 久久精品亚洲综合| 欧美在线看片A免费观看| 亚洲日韩在线中文字幕综合| 中文字幕亚洲图片| 91免费人成网站在线观看18| 亚洲AV日韩AV无码污污网站| 亚洲午夜国产精品无码老牛影视 | 三年在线观看免费观看完整版中文 | 国产亚洲一区二区精品| 一二三四在线观看免费高清中文在线观看| 亚洲欧洲专线一区| 国产亚洲人成网站观看| 成人性生免费视频|