Android: librería OkHttp 4

OkHttp es una cliente de Http para Android desarrollado en Java tradicionalmente, la nueva versión -la 4- ha cambiado, ahora está desarrollada usando Kotlin. Hemos pasado de .java a .kt :).

Por defecto OkHttp permite:

  • Soporta HTTP/2, permite todas las peticiones desde el mismo host compartiendo sockets.
  • Su pull de conexiones reduce la latencia de las peticiones (si HTTP/2 no está disponible).
  • Implementación GZIP que permite reducir los tamaños de descarga de paquetes de datos.
  • Sistema de cache para ahorrar ancho de banda.

OkHttp también gerstiona los problemas de conexión de manera silenciosa, si la conexión falla intenta conectarse a direcciones IP alternativas. Soporta también estándares modernos de TLS (1.3, pinning de certificados y ALPN).

Permite hacer llamadas síncronas o asíncronas con callbacks.

Funciona en versiones de Android 5.0+ (API level 21+) and on Java 8+ (o Kotlin). Tiene como única dependencia a la librería Okio.

Al ser una librería para comunicación por http es recomendable tener actualizada la librería a la última versión para evitar problemas de seguridad y de conectividad.

OkHttp incluye una librería llamada MockWebServer para realizar tests unitarios.

También está preparado para que utilices R8 o Proguard para reducir y ofuscar el código aplicando las opciones de okhttp3.pro.

Os pongo aquí un ejemplo de como leer una url y obtener el contenido:


Aquí otro ejemplo de como enviar una petición post al servidor:


Para usarlo en tu proyecto de Android debes además agregar la dependencia Maven al gradle de tu proyecto de la siguiente manera:
compile 'com.squareup.okhttp:okhttp:4.0.0'

OkHttp tiene una documentación muy amplia y dispone de eventos, interceptores, recipes, etc. en https://square.github.io/okhttp/

OkHttp es sin duda alguna la librería más utilizada en Android para conexiones por Http así que si haces una app te recomiendo utilizarla.

Comentarios