HttpClient doesn't compute content length - unless you give it a String to send, and the appropriate encoding, in which case it converts the String to bytes and gets the length. Of course, if you give it a byte array, it can simply ask the byte array how long it is.

HttpClient deals in "RequestEntity" implementations, and that has only four methods: isRepeatable(), writeContent(), getContentLength(), getContentType(). There are, of course, default implementations for InputStreams, Strings, and byte arrays.

The best that HttpClient can do, if the length is unknown, is to send the request with "chunked" encoding.

-Eric.

Thilina Gunarathne wrote:

IMHO it's If it's sending the wrong size it should be a bug in Commons HttpClient. It's suppose to compute the content-length regardless whether the data are binary, text , MIME or anything.... Thanks,
~Thilina

On 8/13/05, [EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>* <[EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>> wrote:

    Author: dims
    Date: Fri Aug 12 13:53:43 2005
    New Revision: 232390

    URL: http://svn.apache.org/viewcvs?rev=232390&view=rev
    <http://svn.apache.org/viewcvs?rev=232390&view=rev>
    Log:
    don't compute the size if we are using mtom (use chunking). This
    is better than sending the wrong size.


    Modified:
webservices/axis/trunk/java/modules/core/src/org/apache/axis2/transport/http/CommonsHTTPTransportSender.java


    Modified:
    
webservices/axis/trunk/java/modules/core/src/org/apache/axis2/transport/http/CommonsHTTPTransportSender.java
    URL:
    
http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/core/src/org/apache/axis2/transport/http/CommonsHTTPTransportSender.java?rev=232390&r1=232389&r2=232390&view=diff
    
<http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/core/src/org/apache/axis2/transport/http/CommonsHTTPTransportSender.java?rev=232390&r1=232389&r2=232390&view=diff>
    
==============================================================================

    ---
    
webservices/axis/trunk/java/modules/core/src/org/apache/axis2/transport/http/CommonsHTTPTransportSender.java
    (original)
    +++
    
webservices/axis/trunk/java/modules/core/src/org/apache/axis2/transport/http/CommonsHTTPTransportSender.java
    Fri Aug 12 13:53:43 2005
    @@ -271,7 +271,7 @@

            public long getContentLength() {
                try {
    -                if (chuncked) {
    +                if (chuncked || doingMTOM) {
                        return -1;
                    } else {
                        if (bytes == null) {





--
"May the SourcE be with u"
http://www.bloglines.com/blog/thilina <http://www.bloglines.com/blog/thilina>

Reply via email to