J'ai essayé de regarder autour pour le même problème, mais n'a pas pu trouver une solution qui ressemble à mon problème:java.io.EOFException: Fin inattendue du flux d'entrée ZLIB - lecture de HTTP
J'utilise la pièce de code suivante lu à partir 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()));
}
la lecture est effectuée de la manière suivante:
HttpURLConnection con = null;
reader = Utils.getConnectionReader(con, "http://www.site.com/page.html");
String line = null;
while ((line = reader.readLine()) != null) {
log.info(line);
}
Parfois, je reçois l'exception mentionnée:
java.io.EOFException: Fin inattendue du flux d'entrée ZLIB
Quand je peux, j'attraper cette exception et recommencez l'opération - avec succès.
Le problème est que je ne sais pas ce qui provoque cette exception à pop. Cela arrive de manière assez aléatoire.
Je veux croire que c'est un problème de réseau.
Quelqu'un a trouvé un moyen de résoudre complètement ce problème?
Merci!
merci pour la réponse. J'utilise ce code pour lire des pages html - des pages de texte. la plupart ne sont pas compressés. Que voulez-vous dire à propos du bogue avec HttpUrlConnection ? merci encore. – tzafrir
@tzafrir - vous déclarez une variable vide * con * et vous la passez dans votre fonction, où vous l'initialisez. Si vous avez l'intention d'utiliser cet objet * con *, notez qu'il ne sera pas initialisé lorsque le contrôle sortira de votre fonction, puisque Java est une valeur par défaut. Si toutefois vous n'avez pas l'intention de l'utiliser, alors il n'est pas nécessaire de le passer dans la fonction en premier lieu. – Perception
merci, j'en suis conscient. il avait des raisons que je ne me souviens pas pour le moment .. – tzafrir