gpt4 book ai didi

java.io.EOFException : Unexpected end of ZLIB input stream - reading from HTTP

转载 作者:行者123 更新时间:2023-12-01 05:42:23 30 4
gpt4 key购买 nike

我尝试四处寻找类似的问题,但找不到任何与我的问题类似的解决方案:

我使用以下代码从 HttpUrlConnection 读取:

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

读取按以下方式执行:

HttpURLConnection con = null;
reader = Utils.getConnectionReader(con, "http://www.site.com/page.html");
String line = null;
while ((line = reader.readLine()) != null) {
log.info(line);
}

有时我会遇到提到的异常:

java.io.EOFException: Unexpected end of ZLIB input stream

如果可以的话,我会捕获此异常并重试该操作 - 成功。

问题是我不知道是什么导致了这个异常的发生。它的发生非常随机。

我想相信这是一个网络问题。

有人找到完全解决这个问题的方法吗?

谢谢!!

最佳答案

您使用的方法对于像 GZip 这样的二进制格式来说不太理想,我假设您这样做只是为了测试?除了这个问题和 HTTPURLConnection 的错误之外,代码中没有太多其他内容可能导致该问题。我建议使用字节缓冲区交换进行阅读,至少可以消除这种可能的错误来源。

关于java.io.EOFException : Unexpected end of ZLIB input stream - reading from HTTP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6778546/

30 4 0