问题描述
connection.setConnectTimeout(8000);connection.setReadTimeout(8000);使用HttpURLConnection下载文件,并设置上面两属性结果报java.net.SocketTimeoutException:Readtimedout异常,我是重复下载该文件的,我在读取文件前输出System.out.println("Start:"+newDate(System.currentTimeMillis()));InputStreamin=connection.getInputStream();然后在报异常处输出:catch(Exceptione){System.out.println("End:"+newDate(System.currentTimeMillis()));if(connection!=null)connection.disconnect();e.printStackTrace();returnfalse;},结果发现读取文件的时候不到8s就已经报readtimedout异常了。以下是测试输出时间(省略异常信息):1.Start:ThuDec1211:22:07CST2013End:ThuDec1211:22:08CST20132.Start:ThuDec1211:22:08CST2013End:ThuDec1211:22:17CST20133.Start:ThuDec1211:22:17CST2013End:ThuDec1211:22:25CST20134.Start:ThuDec1211:22:25CST2013End:ThuDec1211:22:25CST20135.Start:ThuDec1211:22:25CST2013End:ThuDec1211:22:26CST20136.Start:ThuDec1211:22:26CST2013End:ThuDec1211:22:26CST20137.Start:ThuDec1211:22:35CST2013End:ThuDec1211:22:36CST2013第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。
服务器拒绝是不可能的,且拒绝也不是报这个异常。URLurl=newURL(address);每次下载是肯定重新new过的。
解决方案五:
Istherenobodyherewhocananswermyquestion?自己up下