Francois-Xavier Bonnet created HTTPCLIENT-1240:
--------------------------------------------------

             Summary: Empty HttpParams for cacheable requests
                 Key: HTTPCLIENT-1240
                 URL: https://issues.apache.org/jira/browse/HTTPCLIENT-1240
             Project: HttpComponents HttpClient
          Issue Type: Bug
          Components: Cache
    Affects Versions: 4.2.1
            Reporter: Francois-Xavier Bonnet
            Priority: Minor


With DefaultHttpClient, HttpResponse.getParams() returns a ClientParamsStack 
with all the parameters previously set at HttpClient or HttpRequest level.
With CachingHttpClient it returns an empty BasicHttpParams when a response is 
cached.

This feature can be very usefull when you are doing complex processing with 
Interceptors for example. It is described in HttpClient documentation:
http://hc.apache.org/httpcomponents-client-ga/tutorial/html/fundamentals.html#d5e299
http://hc.apache.org/httpcomponents-client-ga/httpclient/apidocs/org/apache/http/impl/client/ClientParamsStack.html

CachingHttpClient should not break this feature.

Here is some sample code:
        // Client and Request scoped params with DefaultHttpClient
        DefaultHttpClient httpClient = new DefaultHttpClient();
        httpClient.getParams().setParameter("testClientParam", 
"testClientParam");
        HttpGet httpGet = new 
HttpGet("http://www.google.fr/images/srpr/logo3w.png";);
        httpGet.getParams().setParameter("testRequestParam", 
"testRequestParam");
        HttpResponse response = httpClient.execute(httpGet);
        EntityUtils.consumeQuietly(response.getEntity());
        
System.out.println(response.getParams().getParameter("testClientParam"));
        
System.out.println(response.getParams().getParameter("testRequestParam"));

        // Same test with CachingHttpClient
        httpClient = new DefaultHttpClient();
        CachingHttpClient cachingHttpClient = new CachingHttpClient(httpClient);
        cachingHttpClient.getParams().setParameter("testClientParam", 
"testClientParam");
        httpGet = new HttpGet("http://www.google.fr/images/srpr/logo3w.png";);
        httpGet.getParams().setParameter("testRequestParam", 
"testRequestParam");
        response = cachingHttpClient.execute(httpGet);
        EntityUtils.consumeQuietly(response.getEntity());
        
System.out.println(response.getParams().getParameter("testClientParam"));
        
System.out.println(response.getParams().getParameter("testRequestParam"));

If you agree I can provide a patch and unit tests

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
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