Posted on 2010-04-13 19:00
leekiang 阅读(1723)
评论(0) 编辑 收藏 所属分类:
java 、
io,tcp
Java中可以使用HttpURLConnection来请求WEB资源。
HttpURLConnection对象不能直接构造,需要通过
URL.openConnection()来获得HttpURLConnection对象,示例代码如下:
String urlStr=
www.ttt.org;
URL url = new
URL(urlStr);
HttpURLConnection conn =
(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);
来源:http://www.xd-tech.com.cn/blog/article.asp?id=37
另外可参考java中处理http连接超时的方法
JDK中的URLConnection参数详解
linux下设置connect连接超时的方法
java socket 用法(一)
Linux,可以修改/proc/sys/net/ipv4/tcp_syn_retries的值,缺省是72,大约5分钟左右,改小点时间就短些