usar trabajar sirve servidor que programar por para informatica ejemplos ejemplo con como caracteristicas android apache httpresponse android-volley android-api-levels

android - trabajar - La eliminación de Apache HTTP Client de API23, ¿afectará eso a Volley?



por que usar apache (6)

Como sabemos, Apache HTTP Client eliminó en la API 23

Eliminación del cliente HTTP Apache

Sin embargo, la biblioteca de Volley actualmente todavía usa la biblioteca de Apache como

import org.apache.http.Header; import org.apache.http.HttpEntity; import org.apache.http.HttpResponse; import org.apache.http.HttpStatus; import org.apache.http.StatusLine; import org.apache.http.conn.ConnectTimeoutException; import org.apache.http.impl.cookie.DateUtils;

Y he probado 2 proyectos: uno con compileSdkVersion 22 , el otro con compileSdkVersion 23 , obtuve 2 capturas de pantalla:

compileSdkVersion 22

compileSdkVersion 23

Tengo 2 preguntas:

  1. Por supuesto, los proyectos API23 que usan Volley todavía funcionan con éxito. Sin embargo, no entiendo cómo usan la biblioteca de Apache en el tiempo de ejecución, ¿encuentran en API22 o más bajo?
  2. Además, me pregunto si en el futuro cercano, ¿se actualizará Volley para que ya no use la biblioteca de Apache ? De lo contrario, ¿seguirán funcionando mis proyectos actuales en el futuro cuando la biblioteca de Apache elimine por completo y no sea compatible?

Quizás mi inglés no sea tan claro, sin embargo, espero que entiendas mi pregunta.

Cualquier explicación será apreciada.

ACTUALIZAR:

A partir de los comentarios de @ random, creé un nuevo proyecto API23 utilizando la biblioteca oficial de Volley de Google (me refiero a git clone https://android.googlesource.com/platform/frameworks/volley como sugiere Google here ), en lugar de usar compile ''com.mcxiaoke.volley:library:1.0.17'' en el archivo build.gradle . Sí, obtuve errores con la falta de biblioteca de Apache al construir el proyecto. Debe agregar useLibrary ''org.apache.http.legacy'' en el archivo build.gradle como se documenta.

2ª ACTUALIZACIÓN:

Acabo de personalizar la descarga de Google (como módulo en mi proyecto) eliminando la biblioteca de Apache. Por favor, vaya a mi proyecto de ejemplo GitHub para su referencia. Sin embargo, tenga en cuenta que no se ha probado completamente en todos los casos, y solo he probado 02 casos simples: solicitudes GET y POST con mi servicio web que es ASP.NET Web API .


Agrega esto a las dependencias de tu aplicación y luego funciona correctamente:

dependencias {... compile ''org.jbundle.util.osgi.wrapped: org.jbundle.util.osgi.wrapped.org.apache.http.client: 4.1.2''}


Eliminación del cliente HTTP Apache Esta vista previa elimina el soporte para el cliente HTTP Apache. Si su aplicación usa este cliente y se dirige a Android 2.3 (API nivel 9) o superior, use la clase HttpURLConnection en su lugar. Esta API es más eficiente porque reduce el uso de la red a través de la compresión transparente y el almacenamiento en caché de respuestas, y minimiza el consumo de energía. Para continuar usando las API HTTP de Apache, primero debe declarar la siguiente dependencia de tiempo de compilación en su archivo build.gradle:

android { useLibrary ''org.apache.http.legacy'' }

Android se está alejando de OpenSSL a la biblioteca BoringSSL. Si está utilizando el NDK de Android en su aplicación, no vincule las bibliotecas criptográficas que no forman parte de la API del NDK, como libcrypto.so y libssl.so. Estas bibliotecas no son API públicas, y pueden cambiar o romperse sin previo aviso en las versiones y dispositivos. Además, puede exponerse a vulnerabilidades de seguridad. En su lugar, modifique su código nativo para llamar a las API de criptografía de Java a través de JNI o ​​para enlazar estáticamente contra una biblioteca de criptografía de su elección.


Es una enorme histeria sobre el cliente HTTP de Apache. Puede continuar usándolo en cualquier proyecto que desee sin ninguna consecuencia. ¿Por qué perder el tiempo portando código a otras bibliotecas? Describí la mejor manera de continuar usando las bibliotecas de Apache aquí: https://.com/a/37623038/1727132 (spoiler: ¡no use la versión heredada!)


Parece que ha habido bastantes problemas con la biblioteca Volley en Android M. Ya se ha registrado un error y Google lo ha reconocido.

https://code.google.com/p/android-developer-preview/issues/detail?id=3013

Debes iniciarlo y seguirlo para más actualizaciones.

ACTUALIZAR

Con respecto a su primera pregunta, no recibe un error por la falta de archivos apache porque la biblioteca que está usando todavía está compilada utilizando API 22

ANDROID_BUILD_TARGET_SDK_VERSION=22 ANDROID_BUILD_TOOLS_VERSION=22.0.1 ANDROID_BUILD_SDK_VERSION=22

https://github.com/mcxiaoke/android-volley/blob/master/gradle.properties

Verifique también este problema abierto en la biblioteca según el cual puede agregar una biblioteca heredada

android { compileSdkVersion 23 buildToolsVersion "23.0.0" useLibrary ''org.apache.http.legacy'' ... }


Appache Http se elimina del API level 23 Android. Si aún utiliza el cliente Apache Http, puede incluir android { useLibrary ''org.apache.http.legacy''} en su project - module build.gradle


android { useLibrary ''org.apache.http.legacy'' } dependencies { compile ''commons-httpclient:commons-httpclient:3.1'' }