OkHttp para Java: cliente HTTP de nova geração
1. O que é e por que usar
OkHttp é uma biblioteca HTTP moderna e eficiente para Java e Android, desenvolvida pela Square. Ela se tornou o padrão de fato para realizar requisições de rede no ecossistema Android e é amplamente utilizada em aplicações Java no lado do servidor. O OkHttp oferece uma API limpa e fluente para enviar requisições HTTP e receber respostas, suportando todos os recursos modernos do protocolo: HTTP/2, WebSockets, compressão GZIP, cache de respostas e recuperação automática de conexões em caso de falhas.
Por que usar OkHttp se já existe o java.net.HttpURLConnection? Primeiro, o OkHttp é muito mais simples de usar — em vez de construções complexas para configurar conexões, você simplesmente cria uma requisição e a executa. Segundo, a biblioteca resolve vários problemas "de fábrica": lida automaticamente com redirecionamentos, gerencia um pool de conexões para reutilização, suporta compressão GZIP transparente e faz cache de respostas para economizar banda. Terceiro, o OkHttp está na base de bibliotecas populares como Retrofit e Picasso, tornando-o indispensável para desenvolvedores Android.
O OkHttp é ideal para qualquer projeto Java que precise interagir com APIs REST, fazer upload de arquivos, trabalhar com WebSockets ou simplesmente executar requisições HTTP. Graças ao suporte a HTTP/2, a biblioteca permite multiplexar requisições em uma única conexão, acelerando significativamente a comunicação com servidores modernos. A versão 4.x e superiores foi totalmente reescrita em Kotlin, mas mantém total compatibilidade com código Java, tornando-a acessível para todos os desenvolvedores Java.
2. Instalação
O OkHttp é distribuído através do Maven Central. Para adicionar a biblioteca ao seu projeto, inclua a dependência no arquivo build.gradle (para Gradle) ou pom.xml (para Maven).
Gradle (projeto Android / Java)
dependencies {
implementation 'com.squareup.okhttp3:okhttp:4.12.0'
// Para logging de requisições (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 (sem Gradle/Maven)
Baixe o arquivo JAR do Maven Central e adicione-o ao classpath do seu projeto.
Importante: O OkHttp 4.x requer Java 8+ ou Android API 21+. Para versões mais antigas, use o OkHttp 3.x.
3. Início rápido — exemplo mínimo funcional
O exemplo mais simples é fazer uma requisição GET e exibir o corpo da resposta no console. Crie uma classe Main.java e copie o código a seguir:
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;
import java.io.IOException;
public class Main {
public static void main(String[] args) {
// 1. Cria o cliente HTTP (geralmente um único para toda a aplicação)
OkHttpClient client = new OkHttpClient();
// 2. Constrói a requisição
Request request = new Request.Builder()
.url("https://api.github.com/users/octocat")
.get()
.build();
// 3. Executa a requisição de forma síncrona (bloqueia a thread)
try (Response response = client.newCall(request).execute()) {
if (response.isSuccessful()) {
System.out.println("Resposta: " + response.body().string());
} else {
System.err.println("Erro: " + response.code());
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
Este código faz uma requisição GET ao GitHub