使用Apache HttpClient 4.5设置超时时间
2024-08-24 08:47:25
使用HttpClient,一般都需要设置连接超时时间和获取数据超时时间。这两个参数很重要,目的是为了防止访问其他http服务时,由于超时导致自己的应用受影响。
4.5版本中,这两个参数的设置都抽象到了RequestConfig中,由相应的Builder构建,具体的例子如下:
import java.io.IOException; import org.apache.http.Consts;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.config.RequestConfig;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.util.EntityUtils; /**
* @author
*
* @date 2017年5月18日 上午9:17:08
*
* @Description
*/
public class HttpGetUtils { /**
* @param args
* @throws IOException
* @throws ClientProtocolException
*/
public static void main(String[] args) throws ClientProtocolException, IOException {
CloseableHttpClient httpclient = HttpClients.createDefault();
HttpGet httpGet = new HttpGet("http://stackoverflow.com/");
RequestConfig requestConfig = RequestConfig.custom().setConnectTimeout(5000).setConnectionRequestTimeout(1000)
.setSocketTimeout(5000).build();
httpGet.setConfig(requestConfig);
CloseableHttpResponse response = httpclient.execute(httpGet);
System.out.println(response.getStatusLine());// 得到状态行
System.out.println(EntityUtils.toString(response.getEntity(), Consts.UTF_8.name()));// 得到请求回来的数据
}
}
setConnectTimeout :设置连接超时时间,单位毫秒。
setConnectionRequestTimeout :设置从connect Manager获取Connection 超时时间,单位毫秒。这个属性是新加的属性,因为目前版本是可以共享连接池的。
setSocketTimeout :请求获取数据的超时时间,单位毫秒。 如果访问一个接口,多少时间内无法返回数据,就直接放弃此次调用。
最新文章
- MVC自动生成数据库【Code-FIrst方式】
- .net异步编程
- shell script练习
- oracle 强杀进程
- java Map实现的cache manager
- 05_Smart-image通过SoftReference提高性能
- MegaCLI SAS RAID Management Tool
- Git Command Summary (Updated)
- 希尔排序----java实现
- C语言程序设计第四次作业——选择结构(2)
- 并发编程之volatile
- Idea 使用小技巧【取消自动打开项目】
- php基础--来自网页转载
- 2016 版 Laravel 系列入门教程
- appium的inspectot使用
- 基于jCOM搭建Java-微软信息桥梁(下)
- selenium元素定位方法
- Codeforces Beta Round #7 C. Line Exgcd
- git把任意代码提交到已存在的github库中
- 5501环路运输【(环结构)线性DP】【队列优化】