java 超时控制_JAVA连接超时控制(转)

Java中使用HttpURLConnection请求资源时,不设置超时可能导致程序僵死。可以通过设置系统属性`sun.net.client.defaultConnectTimeout`和`sun.net.client.defaultReadTimeout`控制连接和读取超时时间,或者直接使用HttpURLConnection的`setConnectTimeout`和`setReadTimeout`方法。在JDK1.4.2中存在超时后自动重试的问题,但在JDK1.5及以后版本已被修复。
摘要由CSDN通过智能技术生成

Java中可以使用HttpURLConnection来请求WEB资源。

HttpURLConnection对象不能直接构造,需要通过URL.openConnection()来获得HttpURLConnection对象,示例代码如下:

String szUrl = "http://www.yesky.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");

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值