2012-02-17 20 views
9

Al crear un servicio web diseñado para interactuar con dispositivos móviles, no estoy seguro de cuál es el mejor enfoque para implementar solicitudes HTTP en Android.DefaultHttpClient o HttpURLConnection en Android

Me encontré con esta publicación, que termina diciendo HttpURLConnection es el método preferido para realizar solicitudes HTTP, y he tenido éxito utilizando el HttpsURLConnection.

Al buscar respuestas o leer otro código de muestra (incluso publicaciones bastante recientes), todas parecen usar DefaultHttpClient, lo que parece ir en contra de la palabra oficial de Google.

Estoy tratando de probar en el futuro mi aplicación de Android tanto como sea posible. Con eso en mente, ¿es el HttpURLConnection la mejor opción?

Respuesta

3

DefaultHttpClient tiene un nivel de abstracción más alto que HttpUrlConnection. Cualquiera de los dos debería estar bien según sus necesidades. Si no necesita el control de HttpUrlConnection, quédese con el DefaultHttpClient.

13

Si usted está apoyando a 2.2, así, el mejor enfoque puede ser para utilizar tanto DefaultHttpClient o HttpURLConnection

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

Motivo: HttpURLConnection es más estable después de Froyo, mientras DefaultHttpClient es menos bugs en Froyo y menor versión.

Ref: http://developer.android.com/reference/org/apache/http/impl/client/DefaultHttpClient.html Android incluye dos clientes HTTP: HttpURLConnection y Apache HTTP Client. Ambos admiten HTTPS, cargas y descargas de transmisión, tiempos de espera configurables, IPv6 y agrupación de conexiones. El cliente Apache HTTP tiene menos errores en Android 2.2 (Froyo) y versiones anteriores. Para Android 2.3 (Gingerbread) y más tarde, HttpURLConnection es la mejor opción. Su API simple y su pequeño tamaño lo hacen ideal para Android. La compresión transparente y el almacenamiento en caché de respuesta reducen el uso de la red, mejoran la velocidad y ahorran batería. Vea el Blog de Desarrolladores de Android para una comparación de los dos clientes HTTP.

+0

gracias por esta increíble explicación! –

Cuestiones relacionadas