HttpClient 4.3超时设置
来源:互联网 发布:淘宝怎么找企业店铺 编辑:程序博客网 时间:2024/04/29 16:17
最近用到了HttpClient写爬虫,可能我有新版本强迫症,老是喜欢用新版本的东西(虽说新版本不一定好用),然后就用了HttpClient 4.3。HttpClient这货和Lucene一样,每个版本的API都变化很大,这有点让人头疼。就好比创建一个HttpClient对象吧,每一个版本的都不一样,
3.X是这样的
1
HttpClient httpClient=
new
DefaultHttpClient();
1
CloseableHttpClient httpClient = HttpClients.createDefault();
我要讲的是超时设置,HttpClient有三种超时设置,最近比较忙,没时间具体归纳总结,以后再补上,我这里就讲一些最简单最易用的超时设置方法。
这是个3.X的超时设置方法
1
2
3
HttpClient client =
new
HttpClient();
client.setConnectionTimeout(
30000
);
client.setTimeout(
30000
);
1
2
HttpClient httpClient=
new
HttpClient();
httpClient.getHttpConnectionManager().getParams().setConnectionTimeout(
5000
);
1
2
3
HttpClient httpClient=
new
DefaultHttpClient();
httpClient.getParams().setParameter(CoreConnectionPNames.CONNECTION_TIMEOUT,
2000
);
//连接时间
httpClient.getParams().setParameter(CoreConnectionPNames.SO_TIMEOUT,
2000
);
//数据传输时间
1
2
3
4
5
CloseableHttpClient httpClient = HttpClients.createDefault();
HttpGet httpGet=
new
HttpGet(
"http://www.baidu.com"
);//HTTP Get请求(POST雷同)
RequestConfig requestConfig = RequestConfig.custom().setSocketTimeout(
2000
).setConnectTimeout(
2000
).build();
//设置请求和传输超时时间
httpGet.setConfig(requestConfig);
httpClient.execute(httpGet);
//执行请求
BTW,4.3版本不设置超时的话,一旦服务器没有响应,等待时间N久(>24小时)。
昨天遇到一个问题需要设置CloseableHttpClient的超时时间,查了官方文档如下。
新建一个RequestConfig:
RequestConfig defaultRequestConfig = RequestConfig.custom() .setSocketTimeout(5000) .setConnectTimeout(5000) .setConnectionRequestTimeout(5000) .setStaleConnectionCheckEnabled(true) .build();
这个超时可以设置为客户端级别,作为所有请求的默认值:
CloseableHttpClient httpclient = HttpClients.custom() .setDefaultRequestConfig(defaultRequestConfig) .build();
Request不会继承客户端级别的请求配置,所以在自定义Request的时候,需要将客户端的默认配置拷贝过去:
HttpGet httpget = new HttpGet("http://www.apache.org/");RequestConfig requestConfig = RequestConfig.copy(defaultRequestConfig) .setProxy(new HttpHost("myotherproxy", 8080)) .build();httpget.setConfig(requestConfig);
2 0
- HttpClient 4.3超时设置
- HttpClient 4.3超时设置
- HttpClient 4.3超时设置
- HttpClient 4.3超时设置
- HttpClient 4.3超时设置
- HttpClient 4.3超时设置
- HttpClient 4.3超时设置
- HttpClient 4.3超时设置
- HttpClient 4.3超时设置
- HttpClient 4.3超时设置
- HttpClient 4.3超时设置
- HttpClient超时设置
- httpclient 超时设置
- tornado httpclient 超时设置
- httpclient 超时设置
- httpClient超时设置
- HttpClient 4 设置超时
- HttpClient设置超时
- GRE考试写作常用短句汇总
- Spring3.2.1+Hibernate4.1.7 多数据源动态切换
- * Validate Binary Search Tree
- 百度UEditor添加视频 增加支持“通用代码”功能,支持微信
- 木质书房 让您别有一番气质
- HttpClient 4.3超时设置
- Linux命令学习总结: file命令
- 在无法判断ANSI还是UICODE编码方式下的字符函数的使用
- 下载网络上某一网址下面的图片到本地
- Android WebView开发问题及优化汇总
- 东莞理工学院怎么样呢
- Android 如何监听返回键,弹出一个退出对话框
- xcode PCL 工程建立及测试
- 利用Spring自定义AOP进行Session超时自动跳转到登录页面