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.
Configuração avançada do HttpClient
Configurações HttpClient para casos de uso avançados.
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.
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.