HttpClients4.*版本超时设置

本文详细介绍了HttpClient不同版本中设置超时的方法,包括3.X和4.3版本的具体实现方式,并对比了各版本间的差异。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

http://www.open-open.com/lib/view/open1383751765321.html

HttpClient 4.3。HttpClient这货和Lucene一样,每个版本的API都变化很大,这有点让人头疼。就好比创建一个HttpClient对象吧,每一个版本的都不一样,

3.X是这样的

HttpClient httpClient=new DefaultHttpClient();
4.3是这样的
CloseableHttpClient httpClient = HttpClients.createDefault();
当然,上面这些变化只不过是一些小变化,大家看看API大家就都会了。
我要讲的是超时设置,HttpClient有三种超时设置,最近比较忙,没时间具体归纳总结,以后再补上,我这里就讲一些最简单最易用的超时设置方法。

这是个3.X的超时设置方法

HttpClient client = new HttpClient();
client.setConnectionTimeout(30000);
client.setTimeout(30000);
HttpClient httpClient= new HttpClient();
httpClient.getHttpConnectionManager().getParams().setConnectionTimeout(5000);
4.X版本的超时设置(4.3后已过时)
HttpClient httpClient=new DefaultHttpClient();
httpClient.getParams().setParameter(CoreConnectionPNames.CONNECTION_TIMEOUT,2000);//连接时间
httpClient.getParams().setParameter(CoreConnectionPNames.SO_TIMEOUT,2000);//数据传输时间
4.3版本超时设置
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小时)。
如果你想要一个可以通过 HTTP/2 支持 REST、WebSocket、Socket.IO、SignalR、SignalR Core、Server-Sent Events(以及更多)的自定义请求并且具有开发者定期更新和出色支持功能的现成插件,那么 BestHTTP/2 就是你需要的! 您可以在其自己的演示页面上试用该资源包,并阅读在线文档。 内含所有源代码! 支持的平台: - WebGL - iOS、Android - UWP、Windows、Mac OS X、Linux 最值得注意的功能是: - HTTP/2 - 自定义您的请求的所有部分: ◦ 方法(GET、HEAD、POST、PUT、DELETE、PATCH) ◦ 标头 ◦ Cookie ◦ 最大重定向计数 ◦ 超时 - 访问服务器发送的每个比特位: ◦ 标头 ◦ 状态代码 ◦ Cookie ◦ 原始内容 ◦ 尾部标头 - 连接和内存池 - 连接和请求超时 - 自动 Cookie 处理 - 支持众多代理(Fiddler、Charles 等) - 支持 HTTP 和 Socks 代理 - 自动缓存和缓存验证 - 设置缓存大小和新鲜度 - gzip 内容编码 - 基本和摘要式身份验证 - 多种格式类型(URL 编码和多部分/格式数据) - 自动重定向处理 - 上传和下载进度跟踪 - 下载时访问您的数据 - 您可以使用 Range 标头恢复下载 - HTTPS - 自定义各种全局设置: ◦ 每个服务器的最大连接数 ◦ 启用/禁用Cookie ◦ 隐私浏览模式 ◦ Cookie Jar 大小 ◦ 等等 WebSocket 功能: - 完全符合 RFC - 易于使用,“可行”的体验 - 支持扩展: ◦ WebSocket 的压缩扩展 (RFC7692) Socket.IO 功能: - 符合最新的(1.x 和 2.x)Socket.IO 实现 - 自动传输升级和降级 - 二进制数据的发送和接收 - 您可以插入自己喜欢的 Json 解码器 SignalR Core 功能: - 支持最新的 SignalR Core - 支持 MessagePack 编码 - 强类型回调 - 使用具有后备选项的最快的 Websocket 传输进行长轮询 - 程序包中包含基于标头的身份验证器 - 上传和下载串流 SignalR 功能: - 适用于最新的 SignalR 实现 - 易于使用的 API - 中心 - 支持身份验证 - 长时间运行的作业的进度消息 - 自动传输升级/降级 - 您可以插入自己喜欢的 Json 解码器 服务器发送事件功能: - 与最新规格兼容 - 易于使用的 API
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值