java实现HttpClient异步请求资源的方法_java

本文实例讲述了java实现HttpClient异步请求资源的方法。分享给大家供大家参考。具体实现方法如下:

package demo;
import java.util.concurrent.CountDownLatch;
import org.apache.http.HttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.nio.client.DefaultHttpAsyncClient;
import org.apache.http.nio.client.HttpAsyncClient;
import org.apache.http.nio.concurrent.FutureCallback;
import org.apache.http.nio.reactor.IOReactorException;
public class Main {
 /**
  * @param args
  * @throws IOReactorException
  * @throws InterruptedException
  */
 public static void main(String[] args) throws IOReactorException, InterruptedException {
  final HttpAsyncClient httpclient = new DefaultHttpAsyncClient();
  httpclient.start();
  HttpGet[] requests = new HttpGet[] {
    new HttpGet("http://www.apache.org/"),
    new HttpGet("https://www.verisign.com/"),
    new HttpGet("http://www.google.com/")
  };
  final CountDownLatch latch = new CountDownLatch(requests.length);
  try {
   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();
      ex.printStackTrace();
     }
     public void cancelled() {
      latch.countDown();
     }
    });
   }
   System.out.println("Doing...");
  }finally {
   latch.await();
   httpclient.shutdown();
  }
  System.out.println("Done");
 }
}

希望本文所述对大家的java程序设计有所帮助。

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索java
, httpclient
, 异步请求
资源
java实现http异步请求、httpclient异步请求、webclient 异步请求、httpclient4 异步请求、异步请求应答实现方式,以便于您获取更多的相关知识。

时间: 2024-09-22 09:09:22

java实现HttpClient异步请求资源的方法_java的相关文章

Struts2 的问题 异步请求访问Action方法出现bug

问题描述 Struts2 的问题 异步请求访问Action方法出现bugpublic class EnumConstAction extends BaseAction {EnumConstService enumConstService;WEnumConstTab selInfo;// 专门为初始化select 使用public WEnumConstTab getInfo() {return info;}public void setInfo(WEnumConstTab info) {this.

使用CORS实现JavaWeb跨域请求问题的方法_java

之前用jsonp 解决跨域问题,现在用CORS实现跨域请求解决java 跨域问题: 主要代码如下 package com.hy.fliter; import java.io.IOException; import javax.servlet.Filter; import javax.servlet.FilterChain; import javax.servlet.FilterConfig; import javax.servlet.ServletException; import javax.

Java Web实现文件下载和乱码处理方法_java

文件上传和下载是web开发中常遇到的问题,这几天在做一个项目又用到了文件下载,之前也零零散散记了些笔记,今天来做一下整理.文件上传还有待进一步测试,这里先说一下文件下载. 一.文件下载处理流程 文件下载处理流程其实很清晰,即: 1.根据文件名或者文件路径定位文件,具体的策略主要根据自己的需求,总之需要系统能找到的文件全路径. 2.获取输入流,从目标文件获取输入流. 3.获取输出流,从response中获取输出流. 4.从输入流读入文件,通过输出流输出文件.这是真正的下载执行过程. 5.关闭IO流

java设置session过期时间的实现方法_java

本文实例讲述了java设置session过期时间的实现方法,分享给大家供大家参考.具体实现方法如下: 1.Timeout in the deployment descriptor (web.xml) 以分钟为单位 复制代码 代码如下: <web-app ...> <session-config> <session-timeout>20</session-timeout> </session-config> </web-app> 上面这

java执行windows下cmd命令的方法_java

本文实例讲述了java执行windows下cmd命令的方法.分享给大家供大家参考. 具体实现代码如下: 复制代码 代码如下: //获取运行时 Runtime rt = Runtime.getRuntime(); //获取进程 Process p = rt.exec(String[] cmdarray);//或者 Process p = rt.exec(String cmd); //如果p不为空,那么要清空 if(null!=p){destory p.destory(); p=null; } 例如

java简单网页抓取的实现方法_java

本文实例讲述了java简单网页抓取的实现方法.分享给大家供大家参考.具体分析如下: 背景介绍 一 tcp简介 1 tcp 实现网络中点对点的传输 2 传输是通过ports和sockets ports提供了不同类型的传输(例如 http的port是80) 1)sockets可以绑定在特定端口上,并且提供传输功能 2)一个port可以连接多个socket 二 URL简介 URL 是对可以从互联网上得到的资源的位置和访问方法的一种简洁的表示,是互联网上标准资源的地址. 互联网上的每个文件都有一个唯一的

Java创建文件且写入内容的方法_java

前两天在项目中因为要通过http请求获取一个比较大的json数据(300KB左右)并且保存,思来想去,最后还是决定将获取到的json数据以文件的形式保存下来,每次使用的时候去读取文件就可以了. 废话不多说了,直接上代码. 以下是代码截图,文章结尾会有完成的代码文件可供下载. 创建文件方法: 写入文件内容方法: 删除文件方法: 测试: 关于文件创建,写入内容,删除.可以根据自己的情况再稍作修改. 以下是代码类. package com.file.run; import java.io.Buffer

浅谈java 执行jar包中的main方法_java

浅谈java 执行jar包中的main方法 通过 OneJar 或 Maven 打包后 jar 文件,用命令: java -jar ****.jar 执行后总是运行指定的主方法,如果 jar 中有多个 main 方法,那么如何运行指定的 main 方法呢? 用下面的命令试试看: java -classpath ****.jar ****.****.className [args] "****.****"表示"包名": "className"表示&

java基于odbc连接oracle的实现方法_java

本文实例讲述了java基于odbc连接oracle的实现方法.分享给大家供大家参考,具体如下: 1.加载 oracle驱动 oracle.jdbc.driver.OracleDriver 2.建立到给定数据库 URL 的连接 jdbc:oracle:thin:@localhost:1521:orcl 3.默认的用户名是system,密码是自己设定的,不能用sys或者是sysdba,这个只是角色. public void testOracle() { try { Class.forName("or