Intestazione HTTP personalizzata con HttpClient

1. Panoramica

In questo tutorial vedremo come impostare un'intestazione personalizzata con HttpClient.

Se vuoi approfondire e imparare altre cose interessanti che puoi fare con HttpClient, vai al tutorial principale di HttpClient.

2. Imposta intestazione su richiesta - 4.3 e superiori

HttpClient 4.3 ha introdotto un nuovo modo di creare richieste: RequestBuilder . Per impostare un'intestazione, useremo il metodo setHeader - sul builder:

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

3. Imposta intestazione su richiesta - Prima della 4.3

Nelle versioni precedenti alla 4.3 di HttpClient, possiamo impostare qualsiasi intestazione personalizzata su una richiesta con una semplice chiamata setHeader sulla richiesta:

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

Come possiamo vedere, stiamo impostando il Content-Type direttamente sulla richiesta su un valore personalizzato: JSON.

4. Impostare l'intestazione predefinita sul client

Invece di impostare l'header su ogni richiesta, possiamo anche configurarlo come intestazione predefinita sul client stesso:

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);

Ciò è estremamente utile quando l'intestazione deve essere la stessa per tutte le richieste, ad esempio un'intestazione dell'applicazione personalizzata.

5. conclusione

Questo articolo ha illustrato come aggiungere un'intestazione HTTP a una o tutte le richieste inviate tramite Apache HttpClient.

L'implementazione di tutti questi esempi e frammenti di codice può essere trovata nel progetto GitHub.