Android API 23 – HttpClient 4.X reempaquetado

Renuncia

  • Sé que no deberíamos usar HttpClient en Android más
  • En API 23 tenemos la opción de usar useLibrary 'org.apache.http.legacy'

Quisiera continuar usando HttpClient (también mantengo bibliotecas y proyectos basados ​​en él) sin embargo, con API 23 las clases se han ido.

Bueno, no se ha ido con la solución useLibrary , pero no se puede utilizar para desarrollar más (las clases no se completan automáticamente, todo se muestra como un código no válido)

También tenemos la opción de usar HttpComponents proporcionado Android fork de HttpClient 4.3.5.1 , que sin embargo no proporciona clases / encabezados / interfaces que Android proporciona en API <22, por lo que compila, pero todavía no podemos desarrollador de manera efectiva.

¿Hay algún reemplazo completo de la biblioteca HttpClient (favorablemente incluso versiones superiores a 4.3) que se puede utilizar más con target / compile-Sdk de la versión 23?

El último reenvasado completo que pude encontrar es https://code.google.com/p/httpclientandroidlib/ que usa la versión 4.3.2

También he añadido comentarios al problema de HC JIRA https://issues.apache.org/jira/browse/HTTPCLIENT-1632

Esta solución probablemente será necesaria sólo hasta HttpClient 5.X se dará a conocer, ya que debería tener nombres de paquete completamente diferentes.

Bueno, para responder a mi propia pregunta, he puesto en marcha el proyecto, que volverá a empaquetar y construir HttpClient en paquete con HttpMime, HttpCore y HttpClient-Cache paquetes en diferentes namespace.

Actualmente la versión provista es 4.3.3 (en sincronía con la versión de ASF HC 4.3.3)

https://github.com/smarek/httpclient-android

Es bastante personalizable, por lo que cambiar el nombre del paquete / artefacto o la versión, el ajuste de la construcción a sus necesidades y así sucesivamente no debería ser problema.

También se publica en Maven Central bajo el identificador cz.msebera.android:httpclient:4.3.3 y todas las importaciones de código que utilicen actualmente org.apache.http deben migrarse (por el bien de usar esta biblioteca) a cz.msebera.android.httpclient

  • valor cero generado numéricamente usando la función aleatoria ()
  • Tienes problemas para conectarte a Google Play Services; Obtener el código de estado Cancelado
  • ¿Cómo abrir una aplicación android instalada con un clic de botón?
  • Simple Thread Management - Java - Android
  • Android Studio "clase" o "interfaz" esperado
  • Iniciar mi aplicación Phonegap a una hora específica (despertador)
  • ¿Eclipse Paho Mqtt Client persiste en todos los mensajes publicados publicados hasta que son ACKed para ser entregados por el corredor bajo QoS-2?
  • ¿Cómo puedo enviar los encabezados de autenticación básica HTTP en Android?
  • ¿Android NDK da aceleración para enviar int sobre sockets?
  • ¿Es posible definir un recurso de array de cadenas Android en Gradle?
  • NoClassDefFoundError: android.support.v7.internal.view.menu.MenuBuilder
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.