HttpURLConnection中如何设置网络超时
来源:互联网 发布:网站建设免费域名 编辑:程序博客网 时间:2024/05/21 13:35
Java中可以使用HttpURLConnection来请求WEB资源。
HttpURLConnection对象不能直接构造,需要通过URL.openConnection()来获得HttpURLConnection对象,示例代码如下:
String szUrl = "http://www.ee2ee.com/";
URL url = new URL(szUrl);
HttpURLConnection urlCon = (HttpURLConnection)url.openConnection();
HttpURLConnection是基于HTTP协议的,其底层通过socket通信实现。如果不设置超时(timeout),在网络异常的情况下,可能会导致程序僵死而不继续往下执行。可以通过以下两个语句来设置相应的超时:
System.setProperty("sun.net.client.defaultConnectTimeout", 超时毫秒数字符串);
System.setProperty("sun.net.client.defaultReadTimeout", 超时毫秒数字符串);
其中: sun.net.client.defaultConnectTimeout:连接主机的超时时间(单位:毫秒)
sun.net.client.defaultReadTimeout:从主机读取数据的超时时间(单位:毫秒)
例如:
System.setProperty("sun.net.client.defaultConnectTimeout", "30000");
System.setProperty("sun.net.client.defaultReadTimeout", "30000");
JDK 1.5以前的版本,只能通过设置这两个系统属性来控制网络超时。在1.5中,还可以使用HttpURLConnection的父类URLConnection的以下两个方法:
setConnectTimeout:设置连接主机超时(单位:毫秒)
setReadTimeout:设置从主机读取数据超时(单位:毫秒)
例如:
HttpURLConnection urlCon = (HttpURLConnection)url.openConnection();
urlCon.setConnectTimeout(30000);
urlCon.setReadTimeout(30000);
需要注意的是,笔者在JDK1.4.2环境下,发现在设置了defaultReadTimeout的情况下,如果发生网络超时,HttpURLConnection会自动重新提交一次请求,出现一次请求调用,请求服务器两次的问题(Trouble)
- HttpURLConnection中如何设置网络超时
- HttpURLConnection中如何设置网络超时
- HttpURLConnection中如何设置网络超时
- 网络编程中如何设置连接超时
- HttpURLConnection超时设置
- httpurlconnection设置超时
- 网络编程中如何为I/O操作设置超时
- JDK1.4 HttpURLConnection超时设置
- HttpURLConnection,getResponseCode,网络超时 相关总结。
- Socket中如何设置连接超时
- Socket中如何设置连接超时
- Socket中如何设置连接超时
- Socket中如何设置连接超时
- Socket中如何设置连接超时
- 如何在Http连接中设置超时?
- Socket中如何设置连接超时(转)
- Socket中如何设置连接超时
- Socket中如何设置连接超时
- 用 devenv.exe /resetuserdata 恢复Visual Studio 初始状态
- SQL Server 2005 最大容量规范
- JAVA中十六进制与字符串的转换
- simplecaptcha.jar包实现验证码
- 2009国庆放假
- HttpURLConnection中如何设置网络超时
- August 20th Tuesday
- C/C++语法知识:typedef struct 用法详解和用法小结
- 时间计算
- 初识Linux环境变量
- Flex--Mate框架(基于标签的事件框架)
- C++成员初始化列表
- JAVA字符集
- 跨线程改变UI的工具类