我使用URL连接在Internet上下载流。但我重置调制解调器后,我无法继续下载此流caz它错误:连接重置。我怎么解决? 这是我的代码:
URL url = new URL(_URL);
HttpURLConnection hUC = (HttpURLConnection) url.openConnection();
hUC.connect();
while (true) {
if ((_data.num = is.read(_data.b)) == -1) {
break;
}
//write to file
fos.write(_data.b, 0, _data.num);
}
答案 0 :(得分:1)
你不能 - 至少不是你的期望。
相反,您需要处理异常,并确定已经读取了多少数据。重新建立Internet连接后 - 假设您下载的HTTP服务器支持可请求的字节范围 - 然后您可以在请求上设置自定义HTTP标头并重新下载其余部分。 (这需要一个新的HttpURLConnection
。)
http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.35显示了相关的HTTP规范,以使其发挥作用。
答案 1 :(得分:0)
如果您正在寻找“简历”类型功能,这会有点复杂。
在断开连接后互联网回来后,您需要重新发出请求,并在请求中添加标头,以便从您中断的字节编号恢复下载。 您需要在请求标头中设置Range属性,以指定您恢复的距离。然后你将继续从那里写入“fos”对象。