0
我做了一個java程序,從任何網站的可選目錄下載一些圖像。 一切工作正常,但有時它不會繼續下載,但會在一段時間後拋出一個SocketException。這裏的錯誤日誌:HttpURLConnection不規則SocketException
...
62.png downloaded
63.png downloaded
64.png downloaded
65.png downloaded
66.png downloaded
Exception in thread "main" java.net.SocketException: Unexpected end of file from server
at sun.net.www.http.HttpClient.parseHTTPHeader(Unknown Source)
at sun.net.www.http.HttpClient.parseHTTP(Unknown Source)
at sun.net.www.http.HttpClient.parseHTTPHeader(Unknown Source)
at sun.net.www.http.HttpClient.parseHTTP(Unknown Source)
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(Unknown Source)
at java.net.URL.openStream(Unknown Source)
at DownloadImage.main(DownloadImage.java:35)
這些文件不是問題。有時候會停在第5張圖片上,有時會在第70張圖片上停下來。這似乎很隨機。
我懷疑與我嘗試訪問的網址有不一致的連接。但我該如何解決它?我試圖設置連接和讀取超時到一個滑稽值
huc.setConnectTimeout(3600000);
huc.setReadTimeout(3600000);
但它沒有解決它。
任何想法?或者我的問題有另一根?
您無法從服務器端解決問題。設置讀取超時總是一個好主意,但是這個值是愚蠢的,不會影響這個問題。將連接超時設置爲一個巨大的值是沒有意義的,因爲(a)你無法將其增加到大約一分鐘的平臺默認值以外,並且(b)它與此問題無關。 – EJP
好吧,我認爲超時會讓我的客戶端等待更長的服務器回答。那麼我必須考慮另一種解決方案。謝謝! – Froxx
你能告訴我們你的源代碼嗎?也許你不會以正確的方式檢查錯誤。 (錯誤發生...) – hgoebl