Benutzerdefinierter HTTP-Header mit dem HttpClient

1. Übersicht

In diesem Tutorial erfahren Sie, wie Sie mit dem HttpClient einen benutzerdefinierten Header festlegen.

Wenn Sie tiefer graben und andere coole Dinge lernen möchten, die Sie mit dem HttpClient tun können, gehen Sie zum Haupt-HttpClient-Tutorial.

2. Setzen Sie den Header auf Anfrage - 4.3 und höher

HttpClient 4.3 hat eine neue Methode zum Erstellen von Anforderungen eingeführt - den RequestBuilder . Um einen Header zu setzen, verwenden wir die setHeader- Methode - im Builder:

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

3. Header auf Anfrage setzen - Vor 4.3

In Versionen vor 4.3 von HttpClient können wir jeden benutzerdefinierten Header für eine Anforderung mit einem einfachen setHeader- Aufruf für die Anforderung festlegen :

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

Wie wir sehen können, setzen wir den Inhaltstyp direkt in der Anforderung auf einen benutzerdefinierten Wert - JSON.

4. Legen Sie den Standardheader auf dem Client fest

Anstatt den Header für jede einzelne Anforderung festzulegen, können wir ihn auch als Standardheader auf dem Client selbst konfigurieren :

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

Dies ist äußerst hilfreich, wenn der Header für alle Anforderungen gleich sein muss, z. B. für einen benutzerdefinierten Anwendungsheader.

5. Schlussfolgerung

Dieser Artikel zeigt, wie Sie einer oder allen über den Apache HttpClient gesendeten Anforderungen einen HTTP-Header hinzufügen.

Die Implementierung all dieser Beispiele und Codefragmente finden Sie im GitHub-Projekt.