Welche Art von Antwort Listener müssen wir verwenden, um Gzip Antworten mit Android Volley zu behandeln?Android Volley: gzip Antwort
Wenn ein String-Listener verwendet wird, scheint die Antwort ihre Codierung zu verlieren.
Wie behandeln Sie Gzip-Antworten mit Volley?
MAJOR EDIT: HttpURLConnection automatisch fügt die gzip Header auf Anfragen, und wenn die Antwort im gzip ist, wird es nahtlos dekodieren und präsentieren Ihnen die Antwort. Alle gzip-Sachen passieren hinter den Kulissen und Sie müssen nicht tun, was ich in einem Geiste als Antwort auf diese Frage gepostet habe. Lesen Sie die Dokumentation hier http://developer.android.com/reference/java/net/HttpURLConnection.html
als eine Angelegenheit der Tat, die Antwort, die ich geschrieben , sollten Sie nicht verwendet werden, da die gzip-Decodierung extrem langsam ist, und sollte von HttpURLConnection behandelt werden gelassen werden.
Hier ist die genaue Stück aus der Dokumentation:
standardmäßig diese Implementierung von HttpURLConnection fordert, dass Server gzip-Kompression. Da getContentLength() die Anzahl der übertragenen Bytes zurückgibt, können Sie diese Methode nicht verwenden, um vorherzusagen, wie viele Bytes von getInputStream() gelesen werden können ( ). Lesen Sie stattdessen den Stream , bis er erschöpft ist: Wenn read() -1 zurückgibt. Gzip-Komprimierung kann durch Einstellen des akzeptablen Codierungen in der Anfrage Header deaktiviert werden:
urlConnection.setRequestProperty("Accept-Encoding", "identity");
Der obige Link verfügbar kommt voreingestellt ist, ist nicht mehr, könnten Sie bitte Ihre Antwort bearbeiten und Ihren Code zu veröffentlichen, Ich habe dasselbe Problem. – NullPointer
aktualisiert den Link https://gist.github.com/premnirmal/8526542 – Prem