OkHttp para Java: el cliente HTTP de nueva generación
1. ¿Qué es OkHttp y por qué usarlo?
OkHttp es una biblioteca HTTP moderna y eficiente para Java y Android, desarrollada por la empresa Square. Se ha convertido en el estándar de facto para realizar peticiones de red en el ecosistema Android y se utiliza activamente en aplicaciones Java del lado del servidor. OkHttp proporciona una API fluida y limpia para enviar solicitudes HTTP y recibir respuestas, soportando todas las funcionalidades modernas del protocolo: HTTP/2, WebSockets, compresión GZIP, almacenamiento en caché de respuestas y reconexión automática ante fallos.
¿Para qué usar OkHttp si ya existe java.net.HttpURLConnection? Primero, OkHttp es mucho más fácil de usar: en lugar de estructuras complejas para configurar la conexión, simplemente creas una solicitud y la ejecutas. Segundo, la biblioteca resuelve muchos problemas "de fábrica": maneja automáticamente las redirecciones, gestiona un pool de conexiones para reutilizarlas, soporta compresión GZIP transparente y puede cachear respuestas para ahorrar ancho de banda. Tercero, OkHttp es la base de bibliotecas populares como Retrofit y Picasso, lo que la hace indispensable para desarrolladores Android.
OkHttp es ideal para cualquier proyecto Java que requiera interactuar con APIs REST, descargar archivos, trabajar con WebSockets o simplemente ejecutar peticiones HTTP. Gracias al soporte de HTTP/2, la biblioteca permite multiplexar solicitudes a través de una sola conexión, acelerando significativamente el trabajo con servidores modernos. La versión 4.x y superiores está completamente reescrita en Kotlin, pero mantiene total compatibilidad con código Java, haciéndola accesible para todos los desarrolladores Java.
2. Instalación
OkHttp se distribuye a través de Maven Central. Para añadir la biblioteca a tu proyecto, agrega la dependencia en el archivo build.gradle (para Gradle) o pom.xml (para Maven).
Gradle (proyecto Android / Java)
dependencies {
implementation 'com.squareup.okhttp3:okhttp:4.12.0'
// Para registro de solicitudes (opcional)
implementation 'com.squareup.okhttp3:logging-interceptor:4.12.0'
}
Maven
<dependency>
<groupId>com.squareup.okhttp3</groupId>
<artifactId>okhttp</artifactId>
<version>4.12.0</version>
</dependency>
Para módulos Java (sin Gradle/Maven)
Descarga el archivo JAR desde Maven Central y agrégalo al classpath de tu proyecto.
Importante: OkHttp 4.x requiere Java 8+ o Android API 21+. Para versiones más antiguas, usa OkHttp 3.x.
3. Inicio rápido — ejemplo mínimo funcional
El ejemplo más sencillo: realizar una petición GET y mostrar el cuerpo de la respuesta en consola. Crea una clase Main.java y copia el siguiente código:
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;
import java.io.IOException;
public class Main {
public static void main(String[] args) {
// 1. Creamos el cliente HTTP (normalmente uno solo para toda la app)
OkHttpClient client = new OkHttpClient();
// 2. Construimos la solicitud
Request request = new Request.Builder()
.url("https://api.github.com/users/octocat")
.get()
.build();
// 3. Ejecutamos la solicitud de forma síncrona (bloquea el hilo)
try (Response response = client.newCall(request).execute()) {
if (response.isSuccessful()) {
System.out.println("Respuesta: " + response.body().string());
} else {
System.err.println("Error: " + response.code());
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
Este código realiza una petición GET a la API de GitHub
También en la biblioteca
GraphQL en Swift: Guía completa de la biblioteca Apollo iOS
Resilience4j para Java: guía completa con ejemplos
Limitación de Tasa en C++: bibliotecas e implementación para proteger API
Geolocalización y mapas en Kotlin: descripción general de bibliotecas y herramientas
Criptografía en PHP: cifrado y hash (guía práctica)