使用Java HttpClient添加自定义HTTP头
大约 1 分钟
使用Java HttpClient添加自定义HTTP头
1. 概述
Java 11 正式引入了 Java HttpClient。在此之前,当我们需要使用 HTTP 客户端时,通常会使用像 Apache HttpClient 这样的第三方库。
在这个简短的教程中,我们将看到如何使用 Java HttpClient 添加自定义 HTTP 头。
我们可以使用 HttpRequest.Builder 对象的三种方法之一轻松添加自定义头:header、headers 或 setHeader。让我们看看它们的实际应用。
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());
如果我们想同时添加多个头,我们可以使用 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();
最后,我们可以使用 setHeader() 方法添加一个头。但是,与 header() 方法不同,如果我们多次使用相同的头名,它将覆盖我们之前用该名称设置的任何先前头:
HttpRequest request = HttpRequest.newBuilder()
.setHeader("X-Our-Header-1", "value1")
.setHeader("X-Our-Header-1", "value2")
.uri(new URI(url)).build();
在上面的例子中,我们的头的值将是“value2”。
3. 结论
总之,我们学习了使用 Java HttpClient 添加自定义 HTTP 头的不同方法。
一如既往,本文的示例代码可以在 GitHub 上找到。