2012-02-29 162 views
1

我使用URL連接在Internet上下載流。但是,我重置調制解調器後,我無法繼續下載此流caz它的錯誤:連接重置。我如何解決它? 這裏是我的代碼:如何重置URL連接

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); 
} 

回答

1

你不能 - 至少,不是你怎麼可能期待。

相反,您需要處理您的異常,並確定您已閱讀了多少數據。重新建立互聯網連接後 - 假設您要下載的HTTP服務器支持可請求的字節範圍 - 然後您可以在請求中設置自定義HTTP標頭並重新下載其餘部分。 (這將需要一個新的HttpURLConnection。)

http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.35顯示了相關的HTTP規範,使這項工作。

0

如果您正在尋找「簡歷」類型的功能,這有點複雜。

一旦斷開連接後互聯網回來,您需要重新發出請求,並向請求添加一個標頭,以便在您離開的字節編號處恢復下載。 您需要在請求標頭中設置Range屬性,以指定您恢復的距離。然後你會繼續從那裏寫入「fos」對象。

看看這個網址:Java: resume Download in URLConnection