Re: svn commit: r1088435 - in /jakarta/jmeter/trunk: bin/ src/core/org/apache/jmeter/util/ src/protocol/http/org/apache/jmeter/protocol/http/sampler/ xdocs/ xdocs/usermanual/

Milamber <[email protected]>
Newsgroups gmane.comp.jakarta.cactus.devel
Organization Apache Software Fondation
Message-ID <[email protected]>
>
>>>> +    /**
>>>> +     * Get Content-Length value from headers
>>>> +     * @param headers
>>>> +     * @return Content-Length value
>>>> +     */
>>>> +    public static int getHeaderContentLength(String headers) {
>>>> +        LinkedHashMap<String, String> lhm = JMeterUtils.parseHeaders(headers);
>>>> +        Set<Entry<String, String>> keySet = lhm.entrySet();
>>>> +        for (Entry<String, String> entry : keySet) {
>>>> +            if (entry.getKey().equals(HEADER_CONTENT_LENGTH)) {
>>>> +                return Integer.parseInt(entry.getValue());
>>>> +            }
>>>> +        }
>>>> +        return 0; // Content-Length not found
>>>>
>>>>         
>>> This does not work for chunked input. It might be better to store the
>>> actual response size when receiving the response, rather than trying
>>> to calculate it later.
>>>
>>>       
>> Ok, store in sampleresult when receiving the response. If 0 (no value),
>> the response data size is used.
>>
>>
>> With my last submission (r1088748), I try to respond to your feedback.
>> Please say me if another thing to improve.
>>     
> The problem of chunked responses still exists - such responses don't
> have a Content-Length header.
>
> One way round this would be to wrap the input Stream with a
> org.apache.commons.io.input.CountingInputStream.
> I don't think this will affect performance adversely.
>
> Does that make sense?
>   

Yes may be a good idea.
Since your last commit on HC4Impl, entity.getContentLength() return -1
(unknown size) (but http response have a content-length define)
I thinks the ResponseContentEncoding class which decompress stream is
the cause.

On HC4, I try to use a CountingInputStream on instream, but the return
size is uncompressed.
//                InputStream instream = entity.getContent();
                InputStream instream = new
CountingInputStream(entity.getContent());
                res.setResponseData(readResponse(res, instream, (int)
entity.getContentLength()));
                int cnt = ((CountingInputStream) instream).getCount();
                log.debug("CNT=" + cnt);


I thinks that CountingInputStream must be in more deep in code, directly
in HttpClient, or inside the Gzip/deflate input stream?


Milamber

> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [email protected]
> For additional commands, e-mail: [email protected]
>
>
>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.