1
我試圖四處尋找類似的問題,但無法找到類似於我的問題的任何解決方案閱讀:java.io.EOFException的:ZLIB輸入流意外結束 - 從HTTP
我用下面這段代碼從HttpURLConnection類閱讀:
HttpURLConnection con = null;
reader = Utils.getConnectionReader(con, "http://www.site.com/page.html");
String line = null;
while ((line = reader.readLine()) != null) {
log.info(line);
}
有時我所提到的例外:在下列方式進行
public static BufferedReader getConnectionReader(HttpURLConnection con, String url)
throws Exception {
con = (HttpURLConnection) new URL(url).openConnection();
con.connect();
if (cm != null) {
cm.storeCookies(con);
}
if (con.getHeaderField("Content-Encoding") != null
&& con.getHeaderField("Content-Encoding").equalsIgnoreCase("gzip")) {
return new BufferedReader(new InputStreamReader(new GZIPInputStream(con.getInputStream())));
} else
return new BufferedReader(new InputStreamReader(con.getInputStream()));
}
閱讀
java.io.EOFException的:ZLIB輸入流意外結束
當我可以,我捕獲這個異常並重試操作 - 成功。
的問題是,我不知道是什麼原因造成這個異常流行。 它發生得非常隨機。
我願意相信這是一個網絡問題。
任何人發現了一種完全解決這樣的問題呢?
謝謝!
謝謝大家的響應。 我使用這段代碼來閱讀html頁面 - 文本頁面。 大部分都沒有壓縮。 你是什麼意思關於與HttpURLConnection類的錯誤? 再次感謝。 – tzafrir
@tzafrir - 你正在聲明一個空的變量* con *並將它傳遞到你的函數中,並初始化它。如果您打算使用該* con *對象,那麼請注意,當控制權返回給函數時,它不會被初始化,因爲Java是按值傳遞的。但是,如果你不打算使用它,那麼它們不需要首先將它傳遞給函數。 – Perception
謝謝我意識到這一點。它有我目前不記得的原因.. – tzafrir