gestire automaticamente le risposte di http di gzip in Android

Riferimento: http://hc.apache.org/httpcomponents-client-ga/tutorial/html/httpagent.html#d4e1261

Questa pagina dice che il codice seguente installa HttpClient per gestire automaticamente le risposte gzip (trasparenti all'utente di HttpClient ):

  • Come ricevere i pacchetti Multicast su Android
  • L'elemento HTML5 <video> su Android non viene riprodotto
  • come aggiungere nuova row ai contenuti e-mail?
  • Applicazione fullscreen Android - impedisce l'accesso alla barra di stato
  • Come distriggersre ViewPager da spostare in una direzione
  • Android discorso - come puoi leggere il text in Android?
  •  DefaultHttpClient httpclient = new DefaultHttpClient(); httpclient.addRequestInterceptor(new RequestAcceptEncoding()); httpclient.addResponseInterceptor(new ResponseContentEncoding()); 

    Tuttavia, non riesco a trovare le classi RequestAcceptEncoding e ResponseContentEncoding nell' SDK Android. Sono solo mancanti – devo scrivere queste cose io stesso?

  • Differenza tra "@ id /" e "@ + id /" in Android
  • Creare un servizio Android con il phonegap? (Avere applicazione phonegap anche quando è chiusa)
  • Può qualcuno spiegare questo codice java
  • API di Google Android: Servizi di Google Play fuori data sull'emulatore
  • Imansible risolvere il target 'android-16'
  • SensorEventListener in filetto separato
  • 2 Solutions collect form web for “gestire automaticamente le risposte di http di gzip in Android”

    Ecco il codice che uso:

      mHttpClient.addResponseInterceptor(new HttpResponseInterceptor() { public void process(final HttpResponse response, final HttpContext context) throws HttpException, IOException { HttpEntity entity = response.getEntity(); Header encheader = entity.getContentEncoding(); if (encheader != null) { HeaderElement[] codecs = encheader.getElements(); for (int i = 0; i < codecs.length; i++) { if (codecs[i].getName().equalsIgnoreCase("gzip")) { response.setEntity(new GzipDecompressingEntity( entity)); return; } } } } }); 

    Potresti anche guardare SyncService.java dall'applicazione I / O di Google.

    Android è in bundle con una versione piuttosto vecchia della libreria Apache HTTP Client che non dispone delle classi mancanti.

    Puoi eseguire il bundle di una versione più recente della libreria Apache HTTP Client con l'applicazione (vedere questa risposta) oppure utilizzare AndroidHttpClient invece che è stato introdotto nel livello API 8.

    L'Android è un fan Android di Google, tutto su telefoni Android, Android Wear, Android Dev e applicazioni Android Games e così via.