如何使用HttpRequest为Java HTTP请求添加多个header
Java HttpRequest构建器添加多个Header的使用方法
HttpRequest.Builder的headers()方法接收可变长度的键值对参数,按「Header名, Header值」的顺序依次传入即可添加多个请求头。
补全后的示例代码如下:
HttpRequest request = HttpRequest.newBuilder() .POST() // 按 头名1, 头值1, 头名2, 头值2 的顺序依次传入即可 .headers("Content-Type", "application/json", "Authorization", "Bearer your_token_here", "User-Agent", "YourApp/1.0", "Accept", "*/*") .uri(getUrl()) .build();
如果你的请求头已经提前存储在Map集合中,可以按如下方式转换后传入:
// 示例提前定义的Header集合 Map<String, String> headerMap = new HashMap<>(); headerMap.put("Content-Type", "application/json"); headerMap.put("Authorization", "Bearer your_token_here"); // 转换为headers方法要求的键值对数组格式 String[] headerArray = headerMap.entrySet().stream() .flatMap(entry -> Stream.of(entry.getKey(), entry.getValue())) .toArray(String[]::new); HttpRequest request = HttpRequest.newBuilder() .POST() .headers(headerArray) .uri(getUrl()) .build();
注意事项
- 同一个Header名可以多次传入,会自动添加为多值Header,不会覆盖已有值
- Header名称不能包含
:或空格,所有键值参数不能为null,否则会抛出IllegalArgumentException
内容的提问来源于stack exchange,提问作者med talel
相关产品推荐
相关产品推荐

