Cliente HTTP com segurança de tipos para Android e Java que transforma métodos de interface anotados em chamadas de rede.
lysine-dev/okhttp
Cliente HTTP para JVM, Android e GraalVM que reutiliza conexões, oferece suporte a HTTP/2 e armazena respostas em cache por padrão.
- Estrelas
- 47,090
- Forks
- 9,298
- Issues abertas
- 148
- Último commit
- há 2 horas
O que é?
OkHttp é um cliente HTTP para aplicações Java, Kotlin e Android. Ele foi projetado para ser eficiente por padrão: requisições ao mesmo host podem compartilhar um socket usando HTTP/2, as conexões são agrupadas quando HTTP/2 não está disponível, as respostas são descompactadas com GZIP de forma transparente e requisições repetidas podem ser atendidas pelo cache de respostas sem acessar a rede.
O cliente também lida com redes instáveis. Quando um serviço é resolvido para vários endereços IP, o OkHttp tenta os endereços alternativos se uma conexão falhar. Ele oferece suporte a TLS 1.3, ALPN e certificate pinning, e sua API usa builders encadeáveis e objetos imutáveis de requisição e resposta. As chamadas podem ser síncronas ou assíncronas, com callbacks.
O projeto segue as especificações HTTP modernas (RFC 9110 a 9113, WebSocket e eventos enviados pelo servidor) e inclui módulos complementares para coroutines, logging, SSE, DNS over HTTPS e MockWebServer para testar clientes. Ele roda no Android 5.0+ e no Java 8+, e pode ser compilado como uma imagem nativa do GraalVM.
Recursos principais
- 01O pool de conexões e a multiplexação HTTP/2 reduzem a latência em requisições repetidas ao mesmo host.
- 02A descompactação transparente de GZIP e o cache de respostas evitam downloads redundantes.
- 03Usa endereços IP alternativos quando uma tentativa de conexão falha.
- 04Oferece suporte a TLS 1.3, ALPN e certificate pinning, e pode usar Conscrypt no Java.
- 05Disponibiliza APIs para chamadas síncronas e assíncronas, baseadas em requisições e respostas imutáveis.
- 06Inclui o MockWebServer para testar clientes HTTP, HTTPS e HTTP/2.
Casos de uso
- Fazer chamadas a APIs REST ou JSON em uma aplicação Java, Kotlin ou Android.
- Baixar arquivos ou mídias grandes, aproveitando a compressão e o cache para economizar banda.
- Criar uma ferramenta HTTP nativa de linha de comando com GraalVM.
- Escrever testes de integração usando um servidor HTTP simulado.
Início rápido
- 1
Adicione a dependência do OkHttp ao seu build do Gradle
implementation("com.squareup.okhttp3:okhttp:5.5.0") - 2
Crie um OkHttpClient e envie uma solicitação usando o exemplo «Get a URL» do README
Antes de usar
- Não permite solicitações GET com corpo.
- O cache de respostas não é uma interface com implementações alternativas.
- A configuração do Maven exige escolher okhttp-jvm ou okhttp-android, já que o artefato okhttp está vazio.
Tópicos
Perguntas frequentes
- O que é okhttp?
- Cliente HTTP para JVM, Android e GraalVM que reutiliza conexões, oferece suporte a HTTP/2 e armazena respostas em cache por padrão. OkHttp é um cliente HTTP para aplicações Java, Kotlin e Android. Ele foi projetado para ser eficiente por padrão: requisições ao mesmo host podem compartilhar um socket usando HTTP/2, as conexões são agrupadas quando HTTP/2 não está disponível, as respostas são descompactadas com GZIP de forma transparente e requisições repetidas podem ser atendidas pelo cache de respostas sem acessar a rede.
- okhttp é gratuito? Qual é a licença?
- okhttp é open source sob a licença Apache-2.0. Confira os termos da licença antes de usá-lo em produtos comerciais.
- okhttp ainda é mantido?
- Manutenção ativa. O último commit de okhttp foi em 21 de out. de 2026.
- Para que posso usar okhttp?
- Fazer chamadas a APIs REST ou JSON em uma aplicação Java, Kotlin ou Android. Baixar arquivos ou mídias grandes, aproveitando a compressão e o cache para economizar banda. Criar uma ferramenta HTTP nativa de linha de comando com GraalVM. Escrever testes de integração usando um servidor HTTP simulado.
- Como instalar okhttp?
- Adicione a dependência do OkHttp ao seu build do Gradle: implementation("com.squareup.okhttp3:okhttp:5.5.0") Crie um OkHttpClient e envie uma solicitação usando o exemplo «Get a URL» do README
- Onde consigo okhttp?
- O código-fonte e as instruções de instalação estão no GitHub: https://github.com/lysine-dev/okhttp
Resumo gerado por IA a partir do README do projeto. As estatísticas do GitHub são atualizadas diariamente.
Projetos relacionados
Servidor web de alto desempenho, proxy reverso, balanceador de carga, API gateway e cache de conteúdo escrito em C.
Proxy HTTP interativo com suporte a TLS, que permite interceptar e inspecionar tráfego HTTP/1, HTTP/2 e WebSocket por interfaces de console, linha de comando e web.
Ferramenta de CLI que extrai certificados TLS/SSL de servidores e os exporta como PEM, DER ou truststores.
Um túnel self-hosted escrito em Go que expõe serviços do localhost à internet usando seu próprio domínio e servidor.
Implementação Java do Apache Dubbo, um framework de RPC e microsserviços para comunicação, descoberta e gerenciamento de tráfego entre serviços.