Capítulo 5 Conocimiento de red Android y marco de red

(1) La diferencia entre HttpClient y HttpURLConnection

Android proporciona principalmente dos formas de realizar solicitudes de red: HttpClient y HttpUrlConnection. Ambos métodos admiten el protocolo https, carga y descarga en forma de transmisión, configura eventos de tiempo de espera, IPV6 y grupo de conexiones y otras funciones.
HttpClient tiene muchas API, que son estables y tienen pocos errores. Pero es difícil de expandir y el costo de mantenimiento es alto. Fue eliminado después de Android 6.0.
HttpUrlConnection proporciona una API simple y ligera que es fácil de extender. Pero hubo un error importante antes de Android 2.2. Después de 2.3, se modificaron los errores y se proporcionaron mecanismos de compresión y almacenamiento en caché, que mejoraron efectivamente el rendimiento de la red.

(2) Diferencias y principios básicos y escenarios de uso entre Volley, OkHttp y Retrofit (tres marcos de red Android comúnmente utilizados)

1. Volley es un marco de comunicación de red lanzado por Google, adecuado para operaciones de red con pequeño volumen de datos pero comunicación frecuente. Pero no es adecuado para descargar archivos grandes.
Las características son: (1) Publicar y obtener solicitudes de red y solicitudes de procesamiento asincrónico de imágenes (2) Ordenar y priorizar solicitudes de red (3) Solicitudes de red de caché (4) Solicitudes de cancelación de niveles múltiples (5) y Actividad
El principio de funcionamiento de la vinculación del ciclo de vida es agregar primero la solicitud a la cola de la caché y consultar cacheDispatcher para consultar si el resultado de la solicitud se almacena en caché localmente. Haga cola y envíe una solicitud de red a través de networkDispatcher, obtenga y analice el resultado de la respuesta, escriba el resultado en el caché y regrese al hilo principal.
2. OkHttp es un marco de comunicación de red desarrollado por el equipo de Square que admite Http2 / SPDY, es decir, admite compartir el mismo Socket para manejar todas las solicitudes del mismo servidor. Si SPDY no está disponible, el grupo de conexiones se utiliza para reducir el retraso de la solicitud. Admite mecanismo de reconexión, datos de respuesta de caché y GZIP para reducir el tráfico de datos.
El patrón de diseño central de OkHttp es el modelo de cadena de responsabilidad del interceptor. El modelo de cadena de responsabilidad se utiliza para separar cada función. Cada interceptor completa su propia tarea y las tareas que no le pertenecen se transfieren a la siguiente, simplificando sus respectivas responsabilidades. Y lógica, se dio cuenta de la solicitud de red. La ventaja de este diseño es que cada cadena de responsabilidad puede implementar funciones tales como almacenamiento en caché, compresión, IO de red y solicitudes en capas, y puede realizar otro procesamiento lógico en los datos de respuesta.
OkHttp es adecuado para grandes solicitudes de red con gran volumen de datos.
3. Retrofit es un paquete de marco de solicitud de red basado en el estilo RESTful, y es un paquete secundario del marco de solicitud de red basado en OKHttp. La capa inferior es hacer solicitudes de red a través de OKHttp, y Retrofit solo es responsable de la encapsulación de la interfaz de solicitud de red, lo que simplifica la configuración de los parámetros de solicitud de red del usuario y también se puede combinar con Rxjava.
Retrofit utiliza una gran cantidad de patrones de diseño para encapsular OkHttp. Su principio de funcionamiento central es abstraer las solicitudes Http como una interfaz Java, y usar anotaciones para describir y configurar los parámetros de solicitud de red en la interfaz. Retrofit usa un proxy dinámico para analizar dinámicamente las anotaciones de la interfaz de solicitud de red en solicitudes HTTP. Finalmente, la solicitud HTTP se ejecuta a través de OKHttp.
Se prefiere la actualización en cualquier escena, especialmente el fondo Api sigue el estilo RESTful y usa RxJava en el proyecto.

(3) Procesamiento de caché de solicitud de red, ¿cómo maneja okhttp el caché de red?

Procesamiento de caché de solicitud de red HTTP:
almacenamiento en caché forzado: cuando el usuario solicita datos por primera vez, el servidor devuelve el tiempo de caducidad del caché (Caduca y control de caché). Si no caduca, puede continuar utilizando el caché; si caduca, el caché no se utiliza. No más solicitudes al servidor.
Caché de contraste: cuando el usuario solicita datos por primera vez, el servidor devolverá el identificador de caché (Etag / If-None-Match y Last-Modified / If-Modified-Since) al usuario junto con los datos. Ambos están respaldados en el caché, y cuando solicita datos nuevamente, el lado del usuario envía la última
ID de caché respaldada al servidor. El servidor determina si el caché expiró de acuerdo con la ID de caché. Si devuelve 304, significa que el caché está disponible y se lee desde el caché Recupere datos; si se devuelve 200, el caché del logotipo no está disponible, solicite el servidor y use los últimos datos devueltos.

Publicado 74 artículos originales · alabanza ganado 15 · vistas 6254

Supongo que te gusta

Origin blog.csdn.net/qq_29966203/article/details/95720586
Recomendado
Clasificación