OkHttp para Java: guía completa con ejemplos prácticos

Entrenador de Python en Línea para Principiantes

Aprende Python fácilmente sin sobrecargarte de teoría. Resuelve tareas prácticas con verificación automática, recibe pistas y escribe código directamente en el navegador, sin instalar nada.

Start Course

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

Recommendations