Cabeçalho HTTP personalizado com o HttpClient

Cabeçalho HTTP personalizado com o HttpClient

1. Visão geral

Neste tutorial, veremos como definir um cabeçalho personalizado com o HttpClient.

Se você quiser ir mais fundo elearn other cool things you can do with the HttpClient, vá parathe main HttpClient tutorial.

Leitura adicional:

Faça uma solicitação HTTP simples em Java

Um guia rápido e prático para realizar solicitações HTTP básicas usando HttpUrlConnection integrado do Java.

Read more

Configuração avançada do HttpClient

Configurações HttpClient para casos de uso avançados.

Read more

Explorando o novo cliente HTTP no Java 9 e 11

Explore a nova API HttpClient do Java 9, que oferece muita flexibilidade e recursos poderosos.

Read more

2. Set Header on Request - 4.3 e superior

O HttpClient 4.3 introduziu uma nova maneira de construir solicitações - oRequestBuilder. Para definir um cabeçalho,we’ll use the setHeader method – on the builder:

HttpClient client = HttpClients.custom().build();
HttpUriRequest request = RequestBuilder.get()
  .setUri(SAMPLE_URL)
  .setHeader(HttpHeaders.CONTENT_TYPE, "application/json")
  .build();
client.execute(request);

3. Set Header on Request - Antes de 4.3

Em versões anteriores a 4.3 de HttpClient,we can set any custom header on a request with a simple setHeader call on the request:

HttpClient client = new DefaultHttpClient();
HttpGet request = new HttpGet(SAMPLE_URL);
request.setHeader(HttpHeaders.CONTENT_TYPE, "application/json");
client.execute(request);

Como podemos ver, estamos definindoContent-Type diretamente na solicitação para um valor personalizado - JSON.

4. Definir cabeçalho padrão no cliente

Em vez de definir o cabeçalho em cada solicitação, também podemosconfigure it as a default header on the Client:

Header header = new BasicHeader(HttpHeaders.CONTENT_TYPE, "application/json");
List
headers = Lists.newArrayList(header); HttpClient client = HttpClients.custom().setDefaultHeaders(headers).build(); HttpUriRequest request = RequestBuilder.get().setUri(SAMPLE_URL).build(); client.execute(request);

Isso é extremamente útil quando o cabeçalho precisa ser o mesmo para todas as solicitações - como um cabeçalho de aplicativo personalizado.

5. Conclusão

Este artigo ilustrou como adicionar um cabeçalho HTTP a uma ou a todas as solicitações enviadas por meio do Apache HttpClient.

A implementação de todos esses exemplos e trechos de código pode ser encontrada emthe GitHub project.