肥宅自学平台_人人成为技术开发者

肥宅人只等待您,联系我们吧,曾经的巅峰是否能回来?我们正在用心服务!

Java异步执行多个HTTP请求的例子(需要apache http类库)

 更新时间:2023-10-02 09:42:05   作者:肥宅-季波   我要评论(0)  

  1. import java.util.concurrent.CountDownLatch;
  2. import org.apache.http.HttpResponse;
  3. import org.apache.http.client.config.RequestConfig;
  4. import org.apache.http.client.methods.HttpGet;
  5. import org.apache.http.concurrent.FutureCallback;
  6. import org.apache.http.impl.nio.client.CloseableHttpAsyncClient;
  7. import org.apache.http.impl.nio.client.HttpAsyncClients;
  8. public class AsyncClientHttpExchangeFutureCallback {
  9.     public static void main(final String[] args) throws Exception {
  10.         RequestConfig requestConfig = RequestConfig.custom()
  11.             .setSocketTimeout(3000)
  12.             .setConnectTimeout(3000).build();
  13.         CloseableHttpAsyncClient httpclient = HttpAsyncClients.custom()
  14.             .setDefaultRequestConfig(requestConfig)
  15.             .build();
  16.         try {
  17.             httpclient.start();
  18.             final HttpGet[] requests = new HttpGet[] {
  19.                     new HttpGet("http://www.apache.org/"),
  20.                     new HttpGet("https://www.verisign.com/"),
  21.                     new HttpGet("http://www.googleXXXXXXXXXXXXXXXXXXXXXX.com/")
  22.             };
  23.             final CountDownLatch latch = new CountDownLatch(requests.length);
  24.             for (final HttpGet request: requests) {
  25.                 httpclient.execute(request, new FutureCallback<HttpResponse>() {
  26.                     @Override
  27.                     public void completed(final HttpResponse response) {
  28.                         latch.countDown();
  29.                         System.out.println(request.getRequestLine() + "->" + response.getStatusLine());
  30.                     }
  31.                     @Override
  32.                     public void failed(final Exception ex) {
  33.                         latch.countDown();
  34.                         System.out.println(request.getRequestLine() + "->" + ex);
  35.                     }
  36.                     @Override
  37.                     public void cancelled() {
  38.                         latch.countDown();
  39.                         System.out.println(request.getRequestLine() + " cancelled");
  40.                     }
  41.                 });
  42.             }
  43.             latch.await();
  44.             System.out.println("Shutting down");
  45.         } finally {
  46.             httpclient.close();
  47.         }
  48.         System.out.println("Done");
  49.     }
  50. }
这就是所有Java异步执行多个HTTP请求的例子(需要apache http类库)的内容了。欢迎收看肥宅自学平台解答。
"小礼物走一走,来肥宅自学平台支持我"
评论区

评论

共条评论
  • 这篇文章还没有收到评论,赶紧来抢沙发吧~
客服中心在线客服
全心全意为平台用户服务
Copyright © 2017-2023 自学平台网站地图:去查看>
  • 肥宅人自己的自学平台
  • 人人都能成为平台讲师
  • 贡献你的力量壮大肥宅自学平台
  • 将自己的能力变现
  • 实现人生的第二职业
网址收藏平台安卓APP
微信公众号微信公众号

本站部分图片或者资源来自程序自动采集或卖家(商家)发布,如果侵犯了您的权益请与我们联系,我们将在24小时内删除!谢谢!

肥宅自学教程网是一个主打IT视频教程、自媒体运行、摄影剪辑等内容的资源学习交流平台。