1. 概述
Java 11正式引入了Java HttpClient。在此之前,当我们需要使用HTTP客户端时,我们通常会使用Apache HttpClient等第三方库。
在这个简短的教程中,我们将了解如何使用Java HttpClient添加自定义HTTP标头。
2. 自定义HTTP标头
我们可以使用HttpRequest.Builder对象的三种方法之一轻松添加自定义标头:header、headers或setHeader。
2.1 使用header()方法
header()方法允许我们一次添加一个标头。
我们可以根据需要多次添加相同的标头名称,如下例所示,它们都会被发送:
HttpClient httpClient = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
.header("X-Our-Header-1", "value1")
.header("X-Our-Header-1", "value2")
.header("X-Our-Header-2", "value2")
.uri(new URI(url)).build();
return httpClient.send(request, HttpResponse.BodyHandlers.ofString());
2.2 使用headers()方法
如果我们想同时添加多个标头,可以使用headers()方法:
HttpRequest request = HttpRequest.newBuilder()
.headers("X-Our-Header-1", "value1", "X-Our-Header-2", "value2")
.uri(new URI(url)).build();
此方法还允许我们将多个值分配给一个标头:
HttpRequest request = HttpRequest.newBuilder()
.headers("X-Our-Header-1", "value1", "X-Our-Header-1", "value2")
.uri(new URI(url)).build();
2.3 使用setHeader()方法
最后,我们可以使用setHeader()方法来添加标头。但是,与header()方法不同,如果我们多次使用相同的标头名称,它将覆盖我们之前使用该名称设置的任何标头:
HttpRequest request = HttpRequest.newBuilder()
.setHeader("X-Our-Header-1", "value1")
.setHeader("X-Our-Header-1", "value2")
.uri(new URI(url)).build();
在上面的示例中,我们的标头的值将为“value2”,而不是“value1”。
3. 总结
总之,我们学习了使用Java HttpClient添加自定义HTTP标头的不同方法。
与往常一样,本教程的完整源代码可在GitHub上获得。
Show Disqus Comments
Post Directory
扫码关注公众号:Taketoday
发送 290992
即可立即永久解锁本站全部文章