HttpServletResponse设置headers返回,发现headers中缺少“Content-Length“和“Content-Type“两个参数。

业务中需要将用httpUtils请求返回的headers全部返回,塞到HttpServletResponse中,代码如下:

java 复制代码
HttpServletResponse response;

// 返回headers
Arrays.stream(httpResponse.getHeaders()).forEach(header -> response.setHeader(header.getName(), header.getValue()));

一、发现问题:

塞到HttpServletResponse中之后,发现headers中缺少"Content-Length"和"Content-Type"两个参数。

使用http直接请求,和使用本项目代理请求对比,发现最后headers中缺少"Content-Length"和"Content-Type"。

二、查找问题

看源码发现遇到这两个特殊字段时,分别赛到了setContentTypesetContentLength

三、解决问题

所以需要再遍历时候重新赛回去

java 复制代码
for (Header header : httpResponse.getHeaders()) {
        if ("Content-Type".equalsIgnoreCase(header.getName())) {
            response.setContentType(header.getValue());
        } else if ("Content-Length".equalsIgnoreCase(header.getName())) {
            response.setContentLength(Integer.valueOf(header.getValue()));
        } else {
            response.setHeader(header.getName(), header.getValue());
        }
}
相关推荐
亦暖筑序12 小时前
AI 客服系统安全加固:JWT 鉴权 + Bucket4j 三层限流
java·架构
xhuiting13 小时前
项目技术总结
java
某人辛木13 小时前
JDK安装配置
java·开发语言
counting money13 小时前
Spring框架基础(依赖注入-全注解形式)
java·数据库·spring
小王师傅6613 小时前
【Java结构化梳理】泛型-初步了解-下
java·开发语言
逝水如流年轻往返染尘13 小时前
JAVA中的String类
java
一只叫煤球的猫13 小时前
ThreadForge 1.2.0 发布:让 Java 并发代码更好写,这次补齐了高阶编排、示例与观测能力
java·设计模式·设计
counting money13 小时前
Spring框架基础(依赖注入-半注解形式)
java·后端·spring
CN-Dust13 小时前
【C++】for循环例题专题
java·c++·算法
染夕陌木13 小时前
RPC/服务调用框架中“方法无法应用到给定类型”错误的通用排查指南
java·ide·rpc