文档章节

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

Mr_Tea伯奕
 Mr_Tea伯奕
发布于 06/24 11:38
字数 256
阅读 107
收藏 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

共有 人打赏支持
Mr_Tea伯奕
粉丝 3
博文 200
码字总数 50384
作品 0
朝阳
其他
Android 浅谈HttpClient工具类

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

Jonson
2013/07/25
0
3
使用单例模式实现自己的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
GZIPInputstream解决乱码问题

public static String getHtmlContent(String htmlurl, String charset) { StringBuffer sb = new StringBuffer(); String acceptEncoding = ""; / 1.生成 HttpClinet 对象并设置参数 / Http......

smilezhuolin
07/03
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Redis大key搜索

一、背景信息 Redis 提供了 list、hash、zset 等复杂类型的数据结构,业务在使用的时候可能由于 key 设计不合理导致某个 key 过大。由于 redis 简单的单线程模型,业务在获取或者删除大 key ...

IT--小哥
18分钟前
0
0
Tcl命令操作实验-----(5)

Vivado% proc myproc {arg} {puts $arg}Vivado% myproc mynamemynameVivado% if {2>1} {puts 2>1} else {puts 2<1}2>1...

whoisliang
33分钟前
0
0
比特币钱包RPC的PHP调用方法

当我们希望在Php开发的网站中加入比特币支付功能时,需要解决的第一个 问题,就是如何在Php程序代码中调用比特币钱包的RPC API开发接口来实现 我们期望的功能,例如比特币的支付与接收。 例如...

汇智网教程
34分钟前
0
0
crunch 練習

crunch 10 10 -t 09%%%%%%%% -o tw_mobile_number.lst

BaiyuanLab
50分钟前
0
0
Kafka技术资料总结(不断更新中)

1、Kafka实践:到底该不该把不同类型的消息放在同一个主题中 2、Kafka剖析系列: Kafka剖析(一):Kafka背景及架构介绍 Kafka设计解析(二):Kafka High Availability (上) Kafka设计解析...

九州暮云
今天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部