文档章节

解决httpclient超时设置不生效的问题

Mr_Tea伯奕
 Mr_Tea伯奕
发布于 06/24 11:38
字数 256
阅读 158
收藏 2

最近公司有项目需要通过http调用第三方服务,且第三方服务偶有超时,故需要设置一定的超时时间防止不响应的情况出现。

初始设置如下:

 

[java] view plain copy

  1. //超时设置  
  2. RequestConfig requestConfig = RequestConfig.custom()  
  3.         .setConnectTimeout(400).setSocketTimeout(400).build();  
  4.   
  5. request.setEntity(s);  
  6. request.setConfig(requestConfig);  
  7.   
  8. HttpClient client = new HttpClient();  
  9. HttpResponse httpResponse = client.execute(request);  

 

发现设置并未生效,后发现是由于没有设置重试选项,将代码修改如下:

 

[java] view plain copy

  1.    private HttpRequestRetryHandler myRetryHandler = new HttpRequestRetryHandler() {  
  2.     @Override  
  3.     public boolean retryRequest(IOException exception,  
  4.             int executionCount, HttpContext context) {  
  5.         return false;  
  6.     }};  
  7.   
  8. //超时设置  
  9. RequestConfig requestConfig = RequestConfig.custom()  
  10.         .setConnectTimeout(connectTImeoutInMills).setSocketTimeout(socketTImeoutInMills).build();  
  11.   
  12. request.setEntity(s);  
  13. request.setConfig(requestConfig);  
  14.   
  15. HttpClient client = HttpClients.custom().setRetryHandler(myRetryHandler).build();  
  16. HttpResponse httpResponse = client.execute(request);  

 

超时设置即生效。

 

 

备注:

httpclient版本为4.5。

本文转载自:https://blog.csdn.net/kakaweb/article/details/51974139

共有 人打赏支持
上一篇: golang mac
下一篇: libnuma.so.1()
Mr_Tea伯奕
粉丝 3
博文 202
码字总数 50665
作品 0
朝阳
其他
私信 提问
Android 浅谈HttpClient工具类

在Android开发中我们经常会用到网络连接功能与服务器进行数据的交互,为此Android的SDK提供了Apache的HttpClient来方便我们使用各种Http服务。你可以把HttpClient想象成一个浏览器,通过它的...

Jonson
2013/07/25
0
3
Apache HttpClient 资源释放、请求超时,导致线程池用光、内存不足

Apache HttpClient,据说很强大,可以支持峰值一秒7万以上的请求。不过需要注意一些资源释放和超时处理的问题。 问题1:线程资源无法释放,最终导致内存不足、或线程池被用光。 问题代码: ...

onedotdot
10/17
0
0
使用单例模式实现自己的HttpClient工具类

引子 在Android开发中我们经常会用到网络连接功能与服务器进行数据的交互,为此Android的SDK提供了Apache的HttpClient来方便我们使用各种Http服务。你可以把HttpClient想象成一个浏览器,通过...

moz1q1
2015/04/01
0
0
HttpClient 4.3超时设置

最近用到了HttpClient写爬虫,可能我有新版本强迫症,老是喜欢用新版本的东西(虽说新版本不一定好用),然后就用了HttpClient 4.3。HttpClient这货和Lucene一样,每个版本的API都变化很大,这有...

Docee
2013/11/03
0
8
Android:HttpClient研究

HttpClient4 用法 由HttpClient3 升级到 HttpClient_4 必看 摘要:HttpClient程序包是一个实现了 HTTP 协议的客户端编程工具包,要想熟练的掌握它,必须熟悉HTTP协议。一个最简单的调用如下:...

boonya
2015/03/27
0
2

没有更多内容

加载失败,请刷新页面

加载更多

一个案例彻底弄懂如何正确使用 mysql inndb 联合索引

摘要: 有一个业务是查询最新审核的5条数据 ```sql SELECT `id`, `title` FROM `th_content` WHERE `audit_time` < 1541984478 AND `status` = 'ONLINE' ORDER BY `audit_time` D. 原来链接 ......

阿里云官方博客
34分钟前
2
0
详解如何用爬虫采集视频播放量数据(以腾讯视频为例)

现代社会提到大数据大家都知道这是近几年才形成的对于数据相关的新名词,在1980年,著名未来学家阿尔文·托夫勒便在 《第三次浪潮》一书中,将大数据热情地赞颂为“第三次浪潮的 华彩乐章”...

技术阿飞
39分钟前
5
0
区块链时代的拜占庭容错:Tendermint(二)

原文题目:《Tendermint: Byzantine Fault Tolerance in the Age of Blockchains》 原文作者:Ethan Buchman 翻译:饶云坤 校对:傅晓波 本文为节选 以下为正文: 本章阐述Tendermint共识算法...

万向区块链
52分钟前
3
0
AS连接网易Mumu模拟器

1、安装模拟器 打开这个网址现在模拟器然后安装 http://mumu.163.com/ 2、安装完成后启动模拟器 3、进入模拟器安装目录 例如本机的安装目录:C:\Program Files (x86)\MuMu\emulator\nemu\vmo...

HGMrWang
59分钟前
9
0
设计要做到扩展性强还挺难的

概述 在日常开发中,有时候你的上司会跟你说,这个模块的设计扩展性要高。把这句话说出来很简单,但是要做到则非常难。导致难的其中一个因素是: 你不熟悉这个行业的业务的玩法 我举个例子来...

Sam哥哥聊技术
今天
10
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部