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());
        }
}
相关推荐
面对疾风叭!哈撒给3 分钟前
Linux之Docker使用JDK21安装包制作JDK21镜像包
java·linux·运维·docker
计算机学姐6 分钟前
基于SpringBoot的汽车美容保养系统
java·spring boot·后端·spring·tomcat·汽车·mybatis
铁打的阿秀6 分钟前
Java 打印pdf添加水印实现
java·python·pdf
爱吃山竹的大肚肚7 分钟前
依赖冲突快速解决
java·spring boot·后端·spring cloud·maven
得物技术10 分钟前
大禹平台:流批一体离线Dump平台的设计与应用|得物技术
java·后端·算法
我真会写代码19 分钟前
深入理解Java JVM:架构、核心机制与实战调优指南
java·jvm·架构
6+h26 分钟前
【java IO】BIO、NIO、AIO 全面对比
java·python·nio
骇客野人34 分钟前
Java springboot里注解大全和使用指南
java·开发语言·spring boot
用户83071968408236 分钟前
Spring Boot 启动报错:OpenFeign 隐性循环依赖,排查了整整一下午
java·spring boot·spring cloud
恼书:-(空寄36 分钟前
事务绑定事件监听器的使用
java