我如何重置URL连接

时间:2012-02-29 02:34:36

标签: java

我使用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);
}

2 个答案:

答案 0 :(得分:1)

你不能 - 至少不是你的期望。

相反,您需要处理异常,并确定已经读取了多少数据。重新建立Internet连接后 - 假设您下载的HTTP服务器支持可请求的字节范围 - 然后您可以在请求上设置自定义HTTP标头并重新下载其余部分。 (这需要一个新的HttpURLConnection。)

http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.35显示了相关的HTTP规范,以使其发挥作用。

答案 1 :(得分:0)

如果您正在寻找“简历”类型功能,这会有点复杂。

在断开连接后互联网回来后,您需要重新发出请求,并在请求中添加标头,以便从您中断的字节编号恢复下载。 您需要在请求标头中设置Range属性,以指定您恢复的距离。然后你将继续从那里写入“fos”对象。

查看此网址:Java: resume Download in URLConnection