gpt4 book ai didi

java - 将 httpheaders 的映射添加到构建器

转载 作者:行者123 更新时间:2023-12-02 02:33:19 26 4
gpt4 key购买 nike

我正在构建一个HttpRequest我想向请求提供 header 映射: Map<String, List<String>> .

问题HttpRequest构建器仅将标题作为键(字符串)值(字符串)而不是整个 map 。我怎样才能将 map 的内容提供给headers在构建器中?

HttpRequest httpRequest = java.net.http.HttpRequest.newBuilder()
.uri(URI.create("google.com"))
.headers("String", "String")
.GET()
.build();

最佳答案

docs假设还有另一个 ovlerload headers​(String... headers) 。它将给定的名称值对添加到该请求的 header 集中。提供的 String 实例必须交替作为 header 名称和 header 值。要将多个值添加到同一名称,则必须为每个新值提供相同的名称。

您需要转换 map Map<String, List<String>> ,对 String[] 说 {"a"-> (1,2), "b"->3} {"a", 1, "a", 2, "b", 3}}

将映射展平到数组应该像这样工作:

public static String[] flattenMap(Map<String, List<String>> m) {
return m.entrySet().stream().flatMap(x ->
x.getValue().stream().flatMap(y -> Stream.of(x.getKey(), y)))
.toArray(String[]::new);
}

关于java - 将 httpheaders 的映射添加到构建器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64726722/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com