OkHttp para Java: guia completo com exemplos práticos

Treinador Online de Python para Iniciantes

Aprenda Python facilmente sem sobrecarga teórica. Resolva tarefas práticas com verificação automática e escreva código diretamente no navegador.

Start Course

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

Recommendations