HttpURLConnection超时处理

Soulic 2010-01-14 02:58:00
        String uri = "http://detail.zol.com.cn/179/178408/param.shtml";
try {
URL url = new URL(uri);
HttpURLConnection conn = null;

boolean isRetry = true;
int timesOfRetry = 0;

while (isRetry)
{
try {
conn = (HttpURLConnection) url.openConnection();
conn.setConnectTimeout(5 * 1000);
conn.setDoOutput(true);
conn.setRequestMethod("POST");
conn.connect();
} catch (IOException e) {
if (timesOfRetry == 5) isRetry = false;
++timesOfRetry;
continue;
}

isRetry = false;
}
} catch (MalformedURLException e) {

}

初学,希望大家给个意见
...全文
664 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
Soulic 2010-01-14
  • 打赏
  • 举报
回复
重试应该怎么处理
channon 2010-01-14
  • 打赏
  • 举报
回复
HttpURLConnection urlcon =(HttpURLConnection)url.openConnection();

urlcon.setDoOutput(true);
urlcon.setUseCaches(false);
//设置超时时间
urlcon.setConnectTimeout(20*1000);
urlcon.setReadTimeout(20*1000);

urlcon.setRequestMethod("GET");
urlcon.setRequestProperty("User-Agent","Mozilla/4.0 (compatible; MSIE 6.0; Windows 2000)");

urlcon.connect();
Soulic 2010-01-14
  • 打赏
  • 举报
回复
那我该怎么调用setConnectTimeout
SambaGao 2010-01-14
  • 打赏
  • 举报
回复
HttpURLConnection extends URLConnection

public void setConnectTimeout(int timeout)设置一个指定的超时值(以毫秒为单位),该值将在打开到此 URLConnection 引用的资源的通信链接时使用。如果在建立连接之前超时期满,则会引发一个 java.net.SocketTimeoutException。超时时间为零表示无穷大超时。
此方法的一些非标准实现可能忽略指定的超时。要查看连接超时设置,请调用 getConnectTimeout()。


参数:
timeout - 一个指定连接超时值的 int,以毫秒为单位
抛出:
IllegalArgumentException - 如果超时参数为负
从以下版本开始:
1.5
另请参见:
getConnectTimeout(), connect()
qq9791541 2010-01-14
  • 打赏
  • 举报
回复
超时就是发错了,或是服务器没有响应。我也菜

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧