如何为已有的HttpRequest添加请求头集合?
给已有的HttpRequest添加请求头集合的实现方法
Java中的HttpRequest是不可变类,无法直接修改原有实例的请求头。要添加请求头集合,你需要通过原有请求的newBuilder()方法创建构建器,在构建器中批量添加请求头后,生成新的HttpRequest实例返回。
实现代码示例
public HttpRequest fix(HttpRequest request) { // 基于原有请求创建构建器 HttpRequest.Builder builder = request.newBuilder(); // 方式1:添加单个请求头 builder.header("X-Custom-1", "value1"); // 方式2:批量添加请求头集合(以Map为例) Map<String, String> additionalHeaders = Map.of( "Content-Type", "application/json", "Authorization", "Bearer your-auth-token", "X-Request-Id", "abc123" ); // 遍历集合批量添加 additionalHeaders.forEach(builder::header); // 构建并返回新的HttpRequest实例 return builder.build(); }
注意事项
- 如果需要覆盖同名请求头,不要使用
header()方法(该方法会追加值),改用setHeader()方法,它会替换原有请求头的所有值:// 替换Content-Type请求头 builder.setHeader("Content-Type", "text/plain");
内容的提问来源于stack exchange,提问作者George
相关产品推荐
相关产品推荐

