Cliente HTTP con seguridad de tipos para Android y Java que convierte métodos de interfaz anotados en llamadas de red.
lysine-dev/okhttp
Cliente HTTP para JVM, Android y GraalVM que reutiliza conexiones, admite HTTP/2 y almacena respuestas en caché de forma predeterminada.
- Estrellas
- 47,090
- Forks
- 9,298
- Issues abiertos
- 148
- Último commit
- hace 2 horas
¿Qué es?
OkHttp es un cliente HTTP para aplicaciones Java, Kotlin y Android. Está diseñado para ser eficiente de forma predeterminada: las solicitudes al mismo host pueden compartir un socket mediante HTTP/2; si HTTP/2 no está disponible, las conexiones se mantienen en un pool; las respuestas se descomprimen de forma transparente con gzip y las solicitudes repetidas pueden servirse desde una caché de respuestas sin acceder a la red.
El cliente también gestiona redes poco fiables. Si un servicio se resuelve en varias direcciones IP, OkHttp prueba otras alternativas después de un fallo de conexión. Admite TLS 1.3, ALPN y certificate pinning, y su API usa builders fluidos y objetos de solicitud y respuesta inmutables. Las llamadas pueden ser síncronas o asíncronas mediante callbacks.
El proyecto sigue las especificaciones HTTP modernas (RFC 9110 a 9113, WebSocket y server-sent events) e incluye módulos complementarios para coroutines, logging, SSE, DNS over HTTPS y MockWebServer, para probar clientes. Funciona en Android 5.0 o posterior y Java 8 o posterior, y se puede compilar como una imagen nativa de GraalVM.
Funciones clave
- 01El pool de conexiones y la multiplexación de HTTP/2 reducen la latencia de las solicitudes repetidas al mismo host.
- 02La descompresión transparente de GZIP y la caché de respuestas evitan descargas redundantes.
- 03Prueba direcciones IP alternativas si falla un intento de conexión.
- 04Admite TLS 1.3, ALPN y certificate pinning, y puede usar Conscrypt en Java.
- 05Ofrece API para llamadas síncronas y asíncronas basadas en solicitudes y respuestas inmutables.
- 06Incluye MockWebServer para probar clientes HTTP, HTTPS y HTTP/2.
Casos de uso
- Llamar a API REST o JSON desde una aplicación Java, Kotlin o Android.
- Descargar archivos o contenido multimedia de gran tamaño cuando la compresión y la caché permiten ahorrar ancho de banda.
- Crear una herramienta HTTP nativa de línea de comandos con GraalVM.
- Escribir pruebas de integración contra un servidor HTTP simulado.
Inicio rápido
- 1
Añade la dependencia de OkHttp a tu compilación de Gradle
implementation("com.squareup.okhttp3:okhttp:5.5.0") - 2
Crea un OkHttpClient y envía una solicitud con el ejemplo «Get a URL» del README
Antes de usarlo
- No permite solicitudes GET con cuerpo.
- La caché de respuestas no es una interfaz con implementaciones alternativas.
- La configuración de Maven requiere elegir okhttp-jvm u okhttp-android, ya que el artefacto okhttp está vacío.
Temas
Preguntas frecuentes
- ¿Qué es okhttp?
- Cliente HTTP para JVM, Android y GraalVM que reutiliza conexiones, admite HTTP/2 y almacena respuestas en caché de forma predeterminada. OkHttp es un cliente HTTP para aplicaciones Java, Kotlin y Android. Está diseñado para ser eficiente de forma predeterminada: las solicitudes al mismo host pueden compartir un socket mediante HTTP/2; si HTTP/2 no está disponible, las conexiones se mantienen en un pool; las respuestas se descomprimen de forma transparente con gzip y las solicitudes repetidas pueden servirse desde una caché de respuestas sin acceder a la red.
- ¿okhttp es gratuito? ¿Qué licencia tiene?
- okhttp es open source bajo la licencia Apache-2.0. Revisa los términos de la licencia antes de usarlo en productos comerciales.
- ¿okhttp sigue mantenido?
- Mantenimiento activo. El último commit de okhttp fue el 21 oct 2026.
- ¿Para qué puedo usar okhttp?
- Llamar a API REST o JSON desde una aplicación Java, Kotlin o Android. Descargar archivos o contenido multimedia de gran tamaño cuando la compresión y la caché permiten ahorrar ancho de banda. Crear una herramienta HTTP nativa de línea de comandos con GraalVM. Escribir pruebas de integración contra un servidor HTTP simulado.
- ¿Cómo se instala okhttp?
- Añade la dependencia de OkHttp a tu compilación de Gradle: implementation("com.squareup.okhttp3:okhttp:5.5.0") Crea un OkHttpClient y envía una solicitud con el ejemplo «Get a URL» del README
- ¿Dónde consigo okhttp?
- El código fuente y las instrucciones de instalación están en GitHub: https://github.com/lysine-dev/okhttp
Resumen generado por IA a partir del README del proyecto. Las estadísticas de GitHub se actualizan a diario.
Proyectos relacionados
Servidor web de alto rendimiento, proxy inverso, balanceador de carga, API gateway y caché de contenido escrito en C.
Proxy HTTP interactivo con capacidad para interceptar TLS e interfaces de consola, línea de comandos y web para inspeccionar tráfico HTTP/1, HTTP/2 y WebSocket.
Herramienta CLI que extrae certificados TLS/SSL de servidores y los exporta como PEM, DER o truststores.
Un túnel autohospedado escrito en Go que expone servicios locales a Internet mediante tu propio dominio y servidor.
Implementación en Java de Apache Dubbo, un framework de RPC y microservicios para crear comunicación, descubrimiento y gestión del tráfico entre servicios.