Benutzerdefinierter HTTP-Header mit dem HttpClient
1. Überblick
In diesem Tutorial erfahren Sie, wie Sie mit dem HttpClient einen benutzerdefinierten Header festlegen.
Wenn Sie tiefer undlearn other cool things you can do with the HttpClient graben möchten, gehen Sie zuthe main HttpClient tutorial.
Weitere Lektüre:
Führen Sie eine einfache HTTP-Anforderung in Java durch
Eine schnelle und praktische Anleitung zum Ausführen grundlegender HTTP-Anforderungen mithilfe der in Java integrierten HttpUrlConnection.
Erweiterte HttpClient-Konfiguration
HTTP-Client-Konfigurationen für erweiterte Anwendungsfälle.
Erkunden des neuen HTTP-Clients in Java 9 und 11
Entdecken Sie die neue HttpClient-API von Java 9, die viel Flexibilität und leistungsstarke Funktionen bietet.
2. Set Header on Request - 4.3 und höher
HttpClient 4.3 hat eine neue Methode zum Erstellen von Anforderungen eingeführt -RequestBuilder. Um einen Header zu setzen,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. Header auf Anfrage setzen - Vor 4.3
In Versionen vor 4.3 von HttpClient istwe 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);
Wie wir sehen können, setzen wir dieContent-Type 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 auchconfigure it as a default header on the Clientelbst festlegen:
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. ein benutzerdefinierter Anwendungsheader.
5. Fazit
In diesem Artikel wurde erläutert, wie einer oder allen über den Apache HttpClient gesendeten Anforderungen ein HTTP-Header hinzugefügt wird.
Die Implementierung all dieser Beispiele und Codefragmente finden Sie inthe GitHub project.