Http Client does not fix incorrect content-lenght headers
---------------------------------------------------------

                 Key: HTTPCLIENT-600
                 URL: http://issues.apache.org/jira/browse/HTTPCLIENT-600
             Project: HttpComponents HttpClient
          Issue Type: Improvement
          Components: HttpClient
    Affects Versions: 3.1 Alpha 1
         Environment: All
            Reporter: Denis Valdenaire


I discovered that the method 

addContentLengthRequestHeader (found in file methods/MultipartPostMethod.java) 
doesn't "fix" the content-lenght when this one is incorrect. It adds one if 
getRequestHeader("Content-Lenght") is null, but it should also verify that the 
content-lenght is correct.

I suggest something like :

long len = getRequestContentLength();
if (getRequestHeader("Content-Length") == null || 
getRequestHeader("Content-Length") != len) { 
            setRequestHeader("Content-Length", String.valueOf(len));
}

Sending an incorrect Content-Length blocks the server if the string sent is 
smaller than announced : waiting for more, and finally reset the connection. If 
it's too big, you lose data.

I've seen this problem in a reverse proxy program (with httpclient 
communicating with the real servers) when the client send urlencoded data and 
this data is modified (partly urldecoded) but not the content-lenght.


-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: 
http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to