Spring-Boot禁用来自响应头的传输编码

时间:2018-05-01 01:01:00

标签: tomcat spring-boot http-headers spring-rest

问题陈述 - Spring-Boot中的简单RESTful服务(2.0.1.RELEASE和嵌入式Tomcat服务器)返回响应,如

HTTP/1.1 200
Content-Type: application/json;charset=UTF-8
Transfer-Encoding: chunked
Date: Tue, 01 May 2018 00:33:04 GMT

7d
{the-json-response-anticipated}
0

搜索和查找后,我发现这是由于标题Transfer-Encoding: chunked引起的。尝试在application.properties

中设置以下内容
spring.http.encoding.force=false
spring.http.encoding.enabled=false

但是,没用。任何禁用相同的方法?
我应该编写显式代码来形成一个参数设置为false的标题并将其设置为响应的标题吗?

1 个答案:

答案 0 :(得分:1)

这可以通过明确添加HttpHeaders.CONTENT_LENGTH标题来实现,如下所示:

一个例子:

@RequestMapping(value = "/contacts", method = RequestMethod.POST)
public Map<String, ContactInfo> addContactInfo(
                            @RequestBody Map<String, ContactInfo> ContactInfoDto,    
                            @RequestHeader(value = HttpHeaders.CONTENT_LENGTH, required = true) Long contentLength)
{ 
    ... 
}

您可能需要在SO上通过this回答了解更多详情。

希望这有帮助!