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());
        }
}
相关推荐
雨中飘荡的记忆10 分钟前
Spring AI + MCP:从入门到实战
java·人工智能·spring
callJJ15 分钟前
Docker 代码沙箱与容器池技术详解
java·运维·docker·容器·oj系统·代码沙箱
wangmengxxw15 分钟前
SpringAI-mcp-入门案例
java·服务器·前端·大模型·springai·mcp
燕山石头16 分钟前
java模拟Modbus-tcp从站
java·开发语言·tcp/ip
觉醒大王19 分钟前
简单说说参考文献引用
java·前端·数据库·学习·自然语言处理·学习方法·迁移学习
wangmengxxw20 分钟前
SpringAI-MySQLMcp服务
java·人工智能·mysql·大模型·sse·springai·mcp
weixin_4492900120 分钟前
EverMemOS 访问外部(deepinfra)API接口
java·服务器·前端
爱装代码的小瓶子36 分钟前
【Linux基础】操作系统下的进程与虚拟内存的关系
android·java·服务器
淮北49437 分钟前
大模型学习(二、使用lora进行微调)
java·服务器·学习
瑞雪兆丰年兮39 分钟前
[从0开始学Java|第一天]Java入门
java·开发语言