Apache HttpClient para Java: guia completo com exemplos

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

O que é Apache HttpClient e para que serve

\n\n

Apache HttpClient é uma biblioteca poderosa e flexível na linguagem Java, projetada para executar requisições HTTP. Ela oferece aos desenvolvedores controle total sobre o processo de envio e recebimento de dados pelo protocolo HTTP. Diferente da classe nativa java.net.HttpURLConnection, o Apache HttpClient fornece uma API de mais alto nível, suporte a padrões modernos (HTTP/1.1, HTTP/2), manipulação conveniente de cookies, autenticação, pool de conexões e interceptadores de requisições.

\n\n

A biblioteca é indispensável nos seguintes cenários:

\n
    \n
  • Interação com REST API — envio de requisições GET, POST, PUT, DELETE para serviços web.
  • \n
  • Parsing de páginas web — download de conteúdo HTML para análise posterior.
  • \n
  • Teste de aplicações web — simulação de requisições de cliente.
  • \n
  • Arquitetura de microsserviços — troca de dados entre serviços.
  • \n
  • Download de arquivos — carregamento de dados binários (imagens, arquivos compactados).
  • \n
\n\n

Instalação do Apache HttpClient

\n\n

O Apache HttpClient não é instalado via pip ou npm, pois é uma biblioteca para Java. Para utilizá-lo, usa-se um sistema de gerenciamento de dependências como Maven ou Gradle. Abaixo estão as instruções para ambas as opções.

\n\n

Instalação via Maven (pom.xml)

\n

Adicione as seguintes dependências ao seu arquivo pom.xml:

\n
<dependency>\n    <groupId>org.apache.httpcomponents</groupId>\n    <artifactId>httpclient</artifactId>\n    <version>4.5.14</version>\n</dependency>\n\n<dependency>\n    <groupId>org.apache.httpcomponents</groupId>\n    <artifactId>httpmime</artifactId>\n    <version>4.5.14</version>\n</dependency>
\n\n

Instalação via Gradle (build.gradle)

\n

Adicione na seção dependencies:

\n
implementation 'org.apache.httpcomponents:httpclient:4.5.14'\nimplementation 'org.apache.httpcomponents:httpmime:4.5.14'
\n\n

Para trabalhar com HTTP/2 (versão 5.x), use:

\n
implementation 'org.apache.httpcomponents.client5:httpclient5:5.3.1'
\n\n

Início rápido: primeira requisição HTTP

\n\n

Crie uma classe Java simples e execute uma requisição GET para uma API pública:

\n\n
import org.apache.http.client.methods.CloseableHttpResponse;\nimport org.apache.http.client.methods.HttpGet;\nimport org.apache.http.impl.client.CloseableHttpClient;\nimport org.apache.http.impl.client.HttpClients;\nimport org.apache.http.util.EntityUtils;\n\npublic class QuickStart {\n    public static void main(String[] args) {\n        // 1. Criamos o cliente HTTP\n        try (CloseableHttpClient httpClient = HttpClients.createDefault()) {\n            \n            // 2. Criamos a requisição GET\n            HttpGet request = new HttpGet("https://jsonplaceholder.typicode.com/posts/1");\n            \n            // 3. Executamos a requisição e obtemos a resposta\n            try (CloseableHttpResponse response = httpClient.execute(request)) {\n                \n                // 4. Extraímos o corpo da resposta\n                String body = EntityUtils.toString(response.getEntity());\n                \n                // 5. Exibimos o resultado\n                System.out.println("Código de status: " + response.getStatusLine().getStatusCode());\n                System.out.println("Corpo da resposta: " + body);\n            }\n        } catch (Exception e) {\n            e.printStackTrace();\n        }\n    }\n}
\n\n

Principais métodos e funções do Apache HttpClient

\n\n

1. HttpGet — execução de requisição GET

\n

Descrição: Cria uma requisição HTTP GET para obter dados do servidor.

\n

Parâmetros:

\n
    \n
  • String uri — URL da requisição.
  • \n
\n

<

Recommendations