2013-05-08 20 views
5

Non riesco a capire cosa dice la documentazione a riguardo.HttpURLConnection Android: compressione gzip

Per impostazione predefinita, questa implementazione di HttpURLConnection richiede che i server utilizzino la compressione gzip. Poiché getContentLength() restituisce il numero di byte trasmessi, non è possibile utilizzare tale metodo per prevedere quanti byte possono essere letti da getInputStream(). Invece, leggi quel flusso finché non è esaurito: quando read() restituisce -1. compressione Gzip può essere disabilitato impostando le codifiche accettabili nell'intestazione della richiesta:

urlConnection.setRequestProperty("Accept-Encoding", "identity"); 

Vorrei sapere se l'implementazione attuale realtà decomprimere il flusso prima di tornare (usando conn.getInputStream()) o se dice semplicemente che la connessione invia automaticamente l'intestazione per la codifica gzip e ho bisogno di gestirla.

Grazie.

risposta

11

Non è necessario gestirlo. basta usare conn.getInputStream()

Da this blogpost:

In zenzero, abbiamo aggiunto compressione risposta trasparente. HttpURLConnection aggiungerà automaticamente questa intestazione per le richieste in uscita, e gestire la risposta corrispondente:

Accept-Encoding: gzip

+1

Fonte: [Android Developers Blog - client HTTP di Android] (http: // android-sviluppatori. blogspot.com/2011/09/androids-http-clients.html) – Czechnology