2012-02-17 12 views
9

Nella creazione di un servizio Web progettato per interagire con i dispositivi mobili, non sono sicuro quale sia l'approccio migliore per l'implementazione delle richieste HTTP su Android.DefaultHttpClient o HttpURLConnection su Android

Mi sono imbattuto in questo post, che termina affermando HttpURLConnection è il metodo preferito per effettuare richieste HTTP, e ho avuto successo utilizzando il HttpsURLConnection.

Durante la ricerca di risposte o la lettura di altro codice di esempio (anche i post più recenti), tutti sembrano utilizzare DefaultHttpClient, che sembra andare contro la parola ufficiale di Google.

Sto provando a prova futura la mia applicazione Android il più possibile. Con questo in mente, è la HttpURLConnection la scelta migliore?

risposta

3

DefaultHttpClient è ad un livello più alto di astrazione rispetto a HttpUrlConnection. O si dovrebbe andare bene in base alle proprie esigenze. Se non si ha bisogno del controllo di HttpUrlConnection, attenersi allo DefaultHttpClient.

13

Se si sta sostenendo 2.2 così, Miglior approccio può essere quello di utilizzare sia DefaultHttpClient o HttpURLConnection

if (Integer.parseInt(Build.VERSION.SDK) <= Build.VERSION_CODES.FROYO) { 
     // Use DefaultHttpClient here 
    } 
else{ 
     //use HttpURLConnection 
} 

Motivo: HttpURLConnection è più stabile dopo Froyo mentre DefaultHttpClient è meno bacato in Froyo e la versione minore.

Rif: http://developer.android.com/reference/org/apache/http/impl/client/DefaultHttpClient.html Android include due client HTTP: HttpURLConnection e Apache HTTP Client. Entrambi supportano HTTPS, upload e download in streaming, timeout configurabili, IPv6 e pool di connessioni. Il client Apache HTTP ha meno bug in Android 2.2 (Froyo) e versioni precedenti. Per Android 2.3 (Gingerbread) e versioni successive, HttpURLConnection è la scelta migliore. La sua semplice API e le ridotte dimensioni lo rendono perfetto per Android. La compressione trasparente e la cache di risposta riducono l'utilizzo della rete, migliorano la velocità e fanno risparmiare batteria. Guarda il blog degli sviluppatori Android per un confronto tra i due client HTTP.

+0

grazie per questa fantastica spiegazione! –

Problemi correlati