Sobre o projeto
OkHttp é uma biblioteca de cliente HTTP para JVM, Android e GraalVM. De acordo com seu README, é projetada para ser eficiente por padrão: o suporte a HTTP/2 permite que requisições ao mesmo host compartilhem um socket, o pool de conexões reduz a latência quando o HTTP/2 não está disponível, GZIP transparente reduz o tamanho dos downloads, e o cache de respostas evita completamente a rede para requisições repetidas.
A biblioteca é descrita como resistente em redes pouco confiáveis. Ela recupera silenciosamente de problemas comuns de conexão, e quando um serviço possui múltiplos endereços IP, tenta endereços alternativos se a primeira conexão falhar, o que o README nota como útil para IPv4+IPv6 e serviços em data centers redundantes. Suporta recursos modernos de TLS, incluindo TLS 1.3, ALPN e certificate pinning, e pode ser configurado para fallback para ampla conectividade.
A API usa builders fluentes e objetos imutáveis de request/response, e suporta tanto chamadas síncronas bloqueantes quanto assíncronas com callbacks. O README inclui exemplos curtos para baixar uma URL e postar JSON em um servidor, e aponta para uma página de receitas para mais exemplos.
OkHttp segue especificações modernas de HTTP, incluindo RFC 9110 (semântica HTTP), RFC 9111 (cache), RFC 9112 (HTTP/1.1), RFC 9113 (HTTP/2), RFC 6455 (WebSockets) e a especificação WHATWG de eventos enviados pelo servidor. Onde as especificações são ambíguas, segue o comportamento de agentes de usuário modernos. O README afirma que OkHttp evita deliberadamente ser excessivamente configurável, particularmente para contornar servidores com bugs ou cenários inválidos, e lista limitações de exemplo como não permitir GET com body e não expor o cache como uma interface com implementações alternativas.
Requisitos: Android 5.0+ (nível API 21+) e Java 8+. No Android, usa AndroidX Startup; se o inicializador estiver desabilitado no manifesto, os apps devem chamar OkHttp.initialize(applicationContext) no Application.onCreate. Depende de Okio para E/S de alta performance e da biblioteca padrão Kotlin. O README recomenda manter o OkHttp atualizado como defesa contra problemas de segurança, e nota que usa a implementação TLS nativa da plataforma, com suporte opcional a Conscrypt em plataformas Java quando o Conscrypt é o primeiro provider de segurança. Um branch legado 3.12.x suporta Android 2.3+ e Java 7+, mas essas plataformas não possuem TLS 1.2 e não devem ser usadas.
A distribuição é via Maven Central, com um bill of materials (BOM) para alinhamento de versões, regras R8/ProGuard e builds de snapshot. OkHttp é publicado como um projeto Kotlin Multiplatform; projetos Maven devem escolher entre okhttp-jvm e okhttp-android porque o artifact okhttp está vazio em projetos Maven. OkHttp 5.2+ implementa módulos Java 9, e o README lista os módulos públicos estáveis, incluindo okhttp3, okhttp3.brotli, okhttp3.coroutines, okhttp3.dnsoverhttps, okhttp3.logging, okhttp3.sse, okhttp3.tls, okhttp3.urlconnection, mockwebserver3 e suas variantes JUnit 4/5.
MockWebServer está incluído para testar clientes HTTP, HTTPS e HTTP/2. O README descreve como principalmente usado para testes internos e testes básicos de apps usando o cliente OkHttp, não uma biblioteca de teste HTTP completa e independente, e nota que não está em desenvolvimento ativo para novos recursos; usuários podem ultrapassá-lo e considerar alternativas como MockServer. Builds de imagem nativa GraalVM funcionam automaticamente, com o módulo okcurl como exemplo. O projeto é licenciado sob Apache License 2.0, copyright Square, Inc.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.