httpClient中的三种超时设置小结
httpClient中的三种超时设置小结
ConnectTimeoutException:
当连接HTTP服务器或者等待HttpConnectionManager管理的一个有效连接超时引发该异常。
SocketTimeoutException:
当读取或者接收Socket超时引起该异常。
在Apache的HttpClient包中,有三个设置超时的地方:
| 代码如下 | 复制代码 |
|
/* 从连接池中取连接的超时时间*/ |
|
第一行设置ConnectionPoolTimeout:
这定义了从ConnectionManager管理的连接池中取出连接的超时时间,此处设置为1秒。
第二行设置ConnectionTimeout:
这定义了通过网络与服务器建立连接的超时时间。Httpclient包中通过一个异步线程去创建与服务器的socket连接,这就是该socket连接的超时时间,此处设置为2秒。
第三行设置SocketTimeout:
这定义了Socket读数据的超时时间,即从服务器获取响应数据需要等待的时间,此处设置为4秒。
以上3种超时分别会抛出ConnectionPoolTimeoutException,ConnectionTimeoutException与SocketTimeoutException。
例
测试版本为HttpClient——3.1
一:连接超时:connectionTimeout
1:指的是连接一个url的连接等待时间。
2:设置方法为:
| 代码如下 | 复制代码 |
|
public class TestHttpClientMain { public static void main(String[] args) { |
|
3:测试的时候,将url改为一个不存在的url:“http://www.111cn.net"
4:超时时间3000ms过后,系统报出异常。
| 代码如下 | 复制代码 |
|
org.apache.commons.httpclient.ConnectTimeoutException: The host did not accept the connection within timeout of 3000 ms at org.apache.commons.httpclient.protocol.ReflectionSocketFactory.createSocket(ReflectionSocketFactory.java:155) |
|
二:读取数据超时:soTimeout
1:指的是连接上一个url,获取response的返回等待时间
2:设置方法
| 代码如下 | 复制代码 |
|
public class TestHttpClientMain { public static void main(String[] args) { |
|
3:测试的时候的连接url为我本地开启的一个url,http://localhost:8080/firstTest.htm?method=test
在我这个测试url里,当访问到这个链接时,线程sleep一段时间,来模拟返回response超时。
| 代码如下 | 复制代码 |
|
@RequestMapping(params = "method=test") //<——② public String testMethod(ModelMap model) { |
|
4:将读取response返回超时时间设的时间比那个sleep时间短之后,运行程序给出异常:
| 代码如下 | 复制代码 |
|
java.net.SocketTimeoutException: Read timed out at java.net.SocketInputStream.socketRead0(Native Method) |
|
httpClient中的三种超时设置小结的更多相关文章
- Java中httpClient中三种超时设置
本文章给大家介绍一下关于Java中httpClient中的三种超时设置小结 在Apache的HttpClient包中,有三个设置超时的地方: /* 从连接池中取连接的超时时间*/ ConnManage ...
- session的三种超时设置
1. 在web容器中设置(此处以tomcat为例) 在tomcat-5.0.28\conf\web.xml中设置,以下是tomcat 5.0中的默认配置: <!-- ========= ...
- Appium的三种等待时间设置方法
#三种appium设置等待时间的方法 #作者:Mr.Dantes #参考了网上的资料,然后进行了梳理 #第一种 sleep(): 设置固定休眠时间. python 的 time 包提供了休眠方法 ...
- Java三大框架之——Hibernate中的三种数据持久状态和缓存机制
Hibernate中的三种状态 瞬时状态:刚创建的对象还没有被Session持久化.缓存中不存在这个对象的数据并且数据库中没有这个对象对应的数据为瞬时状态这个时候是没有OID. 持久状态:对象经过 ...
- MySQL buffer pool中的三种链
三种page.三种list.LRU控制调优 一.innodb buffer pool中的三种页 1.free page:从未用过的页 2.clean page:干净的页,数据页的数据和磁盘一致 3.d ...
- Netty中的三种Reactor(反应堆)
目录: Reactor(反应堆)和Proactor(前摄器) <I/O模型之三:两种高性能 I/O 设计模式 Reactor 和 Proactor> <[转]第8章 前摄器(Proa ...
- 061 hive中的三种join与数据倾斜
一:hive中的三种join 1.map join 应用场景:小表join大表 一:设置mapjoin的方式: )如果有一张表是小表,小表将自动执行map join. 默认是true. <pro ...
- PD的CDM模型中的三种实体关系
PD的CDM模型中的三种实体关系 本文摘自:http://www.cnblogs.com/syf/articles/2480580.html PD 正向工程使用说明:http://download.c ...
- CSS中的三种基本的定位机制(普通流、定位、浮动)
一.普通流 普通流中元素框的位置由元素在XHTML中的位置决定.块级元素从上到下依次排列,框之间的垂直距离由框的垂直margin计算得到.行内元素在一行中水平布置. 普通流就是html文档中的元素如块 ...
随机推荐
- WebLogic(12C)——Server
上篇博客介绍了Weblogic的安装.Domain的创建,以及怎样进入管理控制台. WebLogic Server安装教程 1.Server(server)概念 2,创建Server(server) ...
- Android经常使用UI组件 - TextView
TextView是Android里面用的最多的UI组件,一般使用在须要显示一些信息的时候,其不能输入,仅仅能初始设定或者在程序中改动. 实例:TextViewDemo 执行效果: 代码清单: 布局文件 ...
- Android Paint、Canvas、Matrix使用讲解(一、Paint)
http://blog.csdn.net/tianjian4592/article/details/44336949 好了,前面主要讲了Animation,Animator 的使用,以及桌面火箭效果和 ...
- CodeForces 546D Soldier and Number Game 打表(求质因子个数)
题目:戳我这个题与HDUOJ 5317有异曲同工之妙 题意:题意看懂了上面的一大串英文之后其实很简单,就是给你一个正整数n,问你n有多少个质因子,不过这里n是通过a!/b!给定的,也就是说n=(a!/ ...
- java中将list、map对象写入文件
链接地址:http://blog.sina.com.cn/s/blog_4a4f9fb50101p6jv.html 推荐:凤爪女瓜子男怪象该谁反思伦敦房价为什么持续暴涨 × wvqusrtg个 ...
- centos下yum安装crontab+mysql自动备份
参考博文: centos下yum安装crontab yum install vixie-cron crontabs //安装 chkconfig crond on ...
- matrix(dp)
matrix Time Limit: 6000/3000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others) Total Sub ...
- 西安力邦智能医疗&可穿戴设备沙龙--第1期---苹果HealthKit、谷歌GoogleFit来袭,智能医疗要爆发吗?
背 景: "可穿戴设备"成为2014的行业热点,从Google Glass到苹果iWatch, 越来越多的企业推出了包含眼镜.腕带.鞋等各种可穿戴设备,"可穿戴&q ...
- 插件化-开启另外应用的activity
1.清单文件 android:sharedUserId="com.zyh.tplugin" 2.视图 <LinearLayout xmlns:android="ht ...
- 设置Ubuntu 10.10版本的软件源
设置Ubuntu 10.10版本的软件源 http://blog.csdn.net/xie1xiao1jun/article/details/49911189 网上有很多关于软件源信息的更新,每次 ...