ejemplo android httpclient urlconnection

ejemplo - httpurlconnection android



URLConnection o HTTPClient: ¿Qué ofrece una mejor funcionalidad y más eficiencia? (6)

Estoy buscando crear un formulario de inicio de sesión para una aplicación de Android. Quiero usar un método de publicación para enviar información al lado del servidor donde se maneja con un archivo PHP; que a su vez valida los parámetros y envía una respuesta.

He examinado las implementaciones que utilizan HttpClient y URLConnection, son muy similares. ¿Cuál es más eficiente para la utilización dentro de una aplicación de Android?

Gracias fabii


Aunque la etiqueta es específicamente para Android, en general, HttpURLConnection también es la mejor opción cuando se trata de aplicaciones Java EE, ya que utilizará la pila HTTP que viene con el servidor de aplicaciones que incluye la configuración de certificados HTTPS en el nivel del servidor de aplicaciones en lugar de la código.

También le permitirá obtener la última versión de los SSL proporcionados por la pila del servidor de aplicaciones en lugar de quedarse atascado con una versión antigua de httpclient que puede no funcionar con TLS 1.2


Creo que en este caso depende de la API que encuentre más natural. En general, HTTPClient es más eficiente dentro de una aplicación del lado del servidor (o tal vez una aplicación por lotes), porque le permite especificar un grupo de conexiones de multiproceso, con un número máximo de conexiones totales y un recuento de conexiones máximo por host (lo que garantiza conexiones simultáneas a el mismo host no se serializa (un problema con HttpUrlConnection)). Pero en una aplicación de Android, probablemente solo harás una conexión a la vez, así que esto no importa.



He investigado un poco sobre esto, he estado usando Apache HttpClient durante mucho tiempo en Android. Me pareció una elección natural y pensé que se mejoraría con el tiempo.

Por otro lado, mientras estaba desarrollando para BlackBerryOS heredado, he estado usando HttpUrlConnection.

Para mí era evidente que el rendimiento de BB era mejor que el de Android en el contexto de las redes.

HttpClient es una clase totalmente funcional pero con errores que proporciona un conjunto enorme de API / métodos. Se puede utilizar para crear un WebBrowser totalmente funcional para Android. Pero tiene algunos problemas con la versión anterior de Android y Google no está contribuyendo de forma activa.

Considerando que HttpUrlConnection tiene una API bastante útil que es útil para desarrollar una aplicación de cliente de red. Ha mejorado el almacenamiento en caché de respuestas y la técnica de compresión mejorada en Android 2.3 y superior. Se reinicia cuando se crea una aplicación de cliente de red.

"Apache HTTPClient tiene menos errores en Eclair y Froyo. Es la mejor opción para estos lanzamientos.

Para Gingerbread y mejor, 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 respuestas reducen el uso de la red, mejoran la velocidad y ahorran batería. Las nuevas aplicaciones deben usar HttpURLConnection; es donde Google gastará su energía en el futuro ".

Consulte para más detalles

http://android-developers.blogspot.in/2011/09/androids-http-clients.html


Si no está intentando enviar y recibir archivos grandes, sugeriría HttpClient.
Es mucho más fácil comenzar y usar, y hay muchos más ejemplos de trabajo disponibles en Internet.

NOTA: Este es HttpClient es diferente a HTTPClient (caso de nota) que es la implementación de otro proveedor.


Generalmente recomendaría URLConnection porque puede actualizarse con el JDK. En un caso, tuvimos una llamada que usaba una versión anterior de HTTP Client que no era compatible con TLS v1.2.

Sin embargo, no usaría URLConnection directamente, generalmente usaría una API de nivel superior como el Cliente JAX-RS o los Clientes de wsimport para conectarme a otro sitio.