当前位置:编程学习 > JAVA >>

HttpURLConnection setReadTimeout

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是可以访问的且也能下载下来,只是有时候经常会网络延时(家里网速不稳定)。

--------------------编程问答-------------------- 1.服务器拒绝?
2.重复下载,需要重新new一个HttpURLConnection。 --------------------编程问答-------------------- http://blog.csdn.net/jdgdf566/article/details/17039693 --------------------编程问答--------------------
引用 1 楼 jdgdf566 的回复:
1.服务器拒绝?
2.重复下载,需要重新new一个HttpURLConnection。

服务器拒绝是不可能的,且拒绝也不是报这个异常。
URL url = new URL(address); 每次下载是肯定重新new过的。 --------------------编程问答-------------------- Is there nobody here who can answer my question? 自己 up 下
补充:Java ,  Java EE
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,