Billy Jaime Beltran created HTTPCORE-759:
--------------------------------------------

             Summary: Content-Length missing on null entity request content
                 Key: HTTPCORE-759
                 URL: https://issues.apache.org/jira/browse/HTTPCORE-759
             Project: HttpComponents HttpCore
          Issue Type: Improvement
          Components: HttpCore
    Affects Versions: 5.2.2
            Reporter: Billy Jaime Beltran


When making a POST request with an empty body, the following difference in 
behaviour was observed.

In HttpComponents 4.4.x, a null body causes a Content-Length zero header to be 
added.
In HttpComponents 5.2.x, a null body causes no Content-Length headers being 
added.

While upgrading an Apache Camel application, we noticed that this breaks calls 
to an upstream IIS server which replies with 411 (Length Required).
That server expects either a Content-Length 0 or a Transfer-Encoding: chunked 
header (with a chunk-size of zero) on requests that have a body semantic (POST, 
PUT).


As the code currently stands written, if we manually set `Content-Length: 0` a 
ProtocolException is thrown 
[RequestContent.java:106|https://github.com/apache/httpcomponents-core/blob/e3c770b55602eb9e5a45dfe7c6a07a1adede2c95/httpcore5/src/main/java/org/apache/hc/core5/http/protocol/RequestContent.java#L106]
and if we call the constructor with overwrite, this header is removed anyway 
without being replaced. 

The previous behaviour (4.x) is documented 
[RequestContent.java:102|https://github.com/apache/httpcomponents-core/blob/a5c117028b7c620974304636d52f06f172f1d08b/httpcore/src/main/java/org/apache/http/protocol/RequestContent.java#L102]



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@hc.apache.org
For additional commands, e-mail: dev-h...@hc.apache.org

Reply via email to