Spring-Boot disable transfer-coding from response header

10,246

This can be achieved by explicitly adding the HttpHeaders.CONTENT_LENGTH header like the below:

An example:

@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)
{ 
    ... 
}

You may want to go through this answer on SO for more details.

Hope this helps!

Share:
10,246

Related videos on Youtube

soufrk
Author by

soufrk

Updated on June 04, 2022

Comments

  • soufrk
    soufrk over 1 year

    Problem statement - a simple RESTful service in Spring-Boot (2.0.1.RELEASE, and embedded Tomcat Server) returns response like,

    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
    

    After a search-and-find, I found that this is caused due to the header Transfer-Encoding: chunked. Tried setting the following in application.properties

    spring.http.encoding.force=false
    spring.http.encoding.enabled=false
    

    But, to no use. Any means to disable the same ?
    Should I write explicit code to form a header with the parameter set asfalse and set it to the header of the response ?

    • Christopher Schultz
      Christopher Schultz over 5 years
      Why do you want to disable a chunked response? For large responses, chunked encoding is the only way to avoid huge buffers on the server side.
  • Christopher Schultz
    Christopher Schultz over 5 years
    I'm not sure about the mechanics, here (i.e. annotations), but yes, the proper way to avoid chunked encoding is to specify a Content-Length response header.
  • Robert Zahm
    Robert Zahm almost 5 years
    This code will require that the caller set the content-length header to use this endpoint. I believe what is being asked for here is how to change this on the response. The accepted answer in that link looks more appropriate.