HttpURLConnection setReadTimeout

chenslong 2013-12-12 11:41:35
connection.setConnectTimeout(8000);
connection.setReadTimeout(8000);
使用HttpURLConnection下载文件,并设置上面两属性
结果报 java.net.SocketTimeoutException: Read timed out 异常,我是重复下载该文件的,我在读取文件前输出
System.out.println("Start:" + new Date(System.currentTimeMillis())); InputStream in=connection.getInputStream();
然后在报异常处输出:
catch(Exception e)
{
System.out.println("End:" + new Date(System.currentTimeMillis()));
if(connection != null)
connection.disconnect();
e.printStackTrace();
return false;
}
,结果发现读取文件的时候不到8s 就已经报read timed out 异常了。以下是测试输出时间(省略异常信息):

1.
Start:Thu Dec 12 11:22:07 CST 2013
End:Thu Dec 12 11:22:08 CST 2013

2.
Start:Thu Dec 12 11:22:08 CST 2013
End:Thu Dec 12 11:22:17 CST 2013

3.
Start:Thu Dec 12 11:22:17 CST 2013
End:Thu Dec 12 11:22:25 CST 2013

4.
Start:Thu Dec 12 11:22:25 CST 2013
End:Thu Dec 12 11:22:25 CST 2013

5.
Start:Thu Dec 12 11:22:25 CST 2013
End:Thu Dec 12 11:22:26 CST 2013

6.
Start:Thu Dec 12 11:22:26 CST 2013
End:Thu Dec 12 11:22:26 CST 2013

7.
Start:Thu Dec 12 11:22:35 CST 2013
End:Thu Dec 12 11:22:36 CST 2013

第1、4、5、6、7 都是不到8s就报异常了,这是为什么呢? 下载的url是可以访问的且也能下载下来,只是有时候经常会网络延时(家里网速不稳定)。

...全文
448 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
chenslong 2013-12-12
  • 打赏
  • 举报
回复
引用 1 楼 jdgdf566 的回复:
1.服务器拒绝? 2.重复下载,需要重新new一个HttpURLConnection。
服务器拒绝是不可能的,且拒绝也不是报这个异常。 URL url = new URL(address); 每次下载是肯定重新new过的。
jdgdf566 2013-12-12
  • 打赏
  • 举报
回复
http://blog.csdn.net/jdgdf566/article/details/17039693
jdgdf566 2013-12-12
  • 打赏
  • 举报
回复
1.服务器拒绝? 2.重复下载,需要重新new一个HttpURLConnection。
chenslong 2013-12-12
  • 打赏
  • 举报
回复
Is there nobody here who can answer my question? 自己 up 下

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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