Java 将httpheaders映射添加到生成器

Java 将httpheaders映射添加到生成器,java,Java,我正在构建一个HttpRequest,其中我想为请求提供一个标题映射:map 问题 HttpRequestbuilder只将头作为键(字符串)值(字符串)而不是整个映射。如何将地图的内容提供给构建器中的标题 HttpRequest httpRequest = java.net.http.HttpRequest.newBuilder() .uri(URI.create("google.com")) .headers("String&qu

我正在构建一个
HttpRequest
,其中我想为请求提供一个标题映射:
map

问题
HttpRequest
builder只将头作为键(字符串)值(字符串)而不是整个映射。如何将地图的内容提供给构建器中的
标题

HttpRequest httpRequest = java.net.http.HttpRequest.newBuilder()
        .uri(URI.create("google.com"))
        .headers("String", "String")
        .GET()
        .build();
假设有另一个ovlerload
头​(字符串…标题)
。它将给定的名称-值对添加到此请求的头集合中。提供的字符串实例必须作为头名称和头值替换。若要向同一名称添加多个值,则必须为每个新值提供相同的名称

您需要将map
map
,比如{“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);
}
publicstaticstring[]平面映射(Map m){
返回m.entrySet().stream().flatMap(x->
x、 getValue().stream().flatMap(y->stream.of(x.getKey(),y)))
.toArray(字符串[]::新建);
}
假设有另一个ovlerload
标题​(字符串…标题)
。它将给定的名称-值对添加到此请求的头集合中。提供的字符串实例必须作为头名称和头值替换。若要向同一名称添加多个值,则必须为每个新值提供相同的名称

您需要将map
map
,比如{“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);
}
publicstaticstring[]平面映射(Map m){
返回m.entrySet().stream().flatMap(x->
x、 getValue().stream().flatMap(y->stream.of(x.getKey(),y)))
.toArray(字符串[]::新建);
}

公共静态HttpRequest.Builder addHeaders(HttpRequest.Builder,映射头){
对于(Map.Entry e:headers.entrySet()){
for(字符串值:e.getValue()){
builder.header(例如getKey(),value);
}
}
返回生成器;
}
使用更少的平面地图“魔法”:-)

公共静态HttpRequest.Builder addHeaders(HttpRequest.Builder,映射头){
对于(Map.Entry e:headers.entrySet()){
for(字符串值:e.getValue()){
builder.header(例如getKey(),value);
}
}
返回生成器;
}

使用更少的flatMap‘magic’:-)

有一个
标题
方法——参见Javadoc。有一个
标题
方法——参见Javadoc。