文档章节

HttpClient 4.5版本设置连接超时时间

WalleChen
 WalleChen
发布于 2015/11/05 18:20
字数 324
阅读 20251
收藏 69
点赞 5
评论 8

        HttpClient升级到4.5版本后,API有很多变化,HttpClient 4之后,API一直没有太稳定,我感觉4.5版本抽象后,很多API应该快稳定了。

       使用HttpClient,一般都需要设置连接超时时间和获取数据超时时间。这两个参数很重要,目的是为了防止访问其他http时,由于超时导致自己的应用受影响。

       4.5版本中,这两个参数的设置都抽象到了RequestConfig中,由相应的Builder构建,具体的例子如下:

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());//得到请求结果  
HttpEntity entity = response.getEntity();//得到请求回来的数据

setConnectTimeout:设置连接超时时间,单位毫秒。

setConnectionRequestTimeout:设置从connect Manager获取Connection 超时时间,单位毫秒。这个属性是新加的属性,因为目前版本是可以共享连接池的。

setSocketTimeout:请求获取数据的超时时间,单位毫秒。 如果访问一个接口,多少时间内无法返回数据,就直接放弃此次调用。


© 著作权归作者所有

共有 人打赏支持
WalleChen
粉丝 3
博文 1
码字总数 324
作品 0
海淀
项目经理
加载中

评论(8)

韩少主
韩少主
好好 谢谢楼主大人
M
Makit_Bei
请问API去哪找呢~~
WalleChen
WalleChen

引用来自“Paranoid-Q”的评论

使用上面的代码,发现比如请求127.0.0.1本机的某个未启动的服务,没有到超时时间就返回异常了,请问老师这是什么问题?

返回的异常是什么?这个需要具体情况具体判断。
Paranoid-Q
Paranoid-Q
使用上面的代码,发现比如请求127.0.0.1本机的某个未启动的服务,没有到超时时间就返回异常了,请问老师这是什么问题?
WalleChen
WalleChen

引用来自“bug0day”的评论

这些api以前版本就有啊么
用法不一样,功能当然是一直用的。4.4起,开始采用Fluent API,看起来好多了
bug0day
bug0day
这些api以前版本就有啊么
WalleChen
WalleChen

引用来自“yeliuping”的评论

旧的代码注释里有说明新的api类放在哪里

是有说明,但很多人只是把这个当工具用,我就总结出来了。
yeliuping
yeliuping
旧的代码注释里有说明新的api类放在哪里
解决httpclient超时设置不生效的问题

最近公司有项目需要通过http调用第三方服务,且第三方服务偶有超时,故需要设置一定的超时时间防止不响应的情况出现。 初始设置如下: [java] view plain copy //超时设置 RequestConfig re...

Mr_Tea伯奕
06/24
0
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
HttpClient内部三个超时时间的区别

ConnectionRequestTimeout从连接池中获取可用连接超时 HttpClient中的要用连接时尝试从连接池中获取,若是在等待了一定的时间后还没有获取到可用连接(比如连接池中没有空闲连接了)则会抛出...

1713716445
07/17
0
0
研究支付时碰到了 httpclient 围观

HttpClient最重要的功能是执行HTTP方法。一个HTTP方法的执行包含一个或多个HTTP请求/HTTP响应交换,通常由HttpClient的内部来处理。而期望用户提供一个要执行的请求对象,而HttpClient期望传...

JAVA码猿
2017/11/07
0
0
HttpClient和HttpURLConnection的区别

Android 提供两个HTTP客户端,分别是HttpURLConnection客户端和Apache的HttpClient,android的AndroidHttpClient是对HttpClient的实现。这两个HTTP客户端都支持HTTPS协议、流媒体的上传和下载...

Callen
2015/08/09
0
0
Apache HttpClient 4.3开发指南

一、概述 Apache HttpClient 4系列已经发布很久了,但由于它与HttpClient 3.x版本完全不兼容,以至于业内采用此库的公司较少,在互联网上也少有相关的文档资料分享。 本文旨在写一个简要的A...

Zero__One
2014/02/16
0
0
读书《HttpClient 教程》

读书《HttpClient 教程》 前言 尽管java.net包提供了基本通过HTTP访问资源的功能,但它没有提供全面的灵活性和其它很多应用程序需要的功能。HttpClient就是寻求弥补这项空白的组件,通过提供...

放个屁
2015/05/04
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

EOS智能合约与DApp开发入门

EOS的是Block.One主导研发的一个区块链底层公链系统,它专门为支撑商业去中心化 应用(Decentralized Application)而设计,其代码开源。 比特币被称为区块链1.0,因为它开辟了数字加密货币的...

笔阁
14分钟前
0
0
编译cjson到dll

https://blog.csdn.net/mengzhisuoliu/article/details/52203724 编译完成后 是纯lua实现的json decode 的10倍以上...

梦想游戏人
23分钟前
0
0
JS基础- Date 对象

Date 对象 Date 对象用于处理日期和时间。 创建 Date 对象的语法: var myDate=new Date() 注释:Date 对象会自动把当前日期和时间保存为其初始值。 Date 对象属性 属性 描述 constructor 返...

ZHAO_JH
26分钟前
0
0
Python数据分析numpy(1)

Python开源的科学计算基础库 1.表示N维数组对象ndarray 2.线性代数、傅里叶变换、随机数生成 3.广播函数,整合c++、c 一.数据的维度 1.数据 2.数据维度 3.一维数据 (1)特点 (2)Python中的...

十年磨一剑3344
28分钟前
0
0
csv导入Hive脚本

from pyspark.sql import HiveContexthivec = HiveContext(sc) # 创建一个hivecontext对象用于写执行SQL,sc为sparkcontext# 拼接一个字段类型字符串str_s = 'label String,'...

gulf
30分钟前
0
0
TensorFlow 隐含层 拟合 异或运算

a⊕b = (¬a ∧ b) ∨ (a ∧¬b) 数据 X = [[0, 0], [0, 1], [1, 0], [1, 1]]Y = [[0], [1], [1], [0]] 单层网络只能拟合线性问题,由于异或是非线性问题,需要使用多层网络 输入和输出 [[...

阿豪boy
45分钟前
0
0
SVN 教程

http://www.runoob.com/svn/svn-tutorial.html

yeahlife
45分钟前
0
0
在Python中,不用while和for循环遍历列表

a = [1, 2, 3, 8, 9]def printlist(l, index): if index == len(l): return else: print(l[index]) printlist(l, index + 1)printlist(a,......

丁典
46分钟前
0
0
Kubernetes使用中发现的错误及解决

运行 kubectl dashboard 时报错: Error validating service: Error getting service kubernetes-dashboard: services "kubernetes-dashboard" not found 排查 kubectl get po --all-names......

哎码
52分钟前
0
0
在git上面找开源项目遇到的坑

1,不写安装环境。 2,不写包版本 3,半成品 4,写了自动部署脚本,但是里面没有都是用默认最新包名

NLGBZJ
58分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部