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.