[ 
https://issues.apache.org/jira/browse/HTTPCLIENT-1267?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13509796#comment-13509796
 ] 

Oleg Kalnichevski commented on HTTPCLIENT-1267:
-----------------------------------------------

Karl
There are several options varying in terms of complexity, standard compliance 
and development efforts:

(1) You can change your code to use BasicClientCookie instead of 
BasicClientCookie2 and be done with it. The fetcher cant make proper use of RFC 
2965 style cookies anyway given it is using a customized BROWSER_COMPATIBILITY 
spec. 
(2) Further customize the cookie spec implementation used by the fetcher to 
produce Cookie instances backed JAXB or JSON objects (or some other 
technology). This should relieve you from having to rely upon binary object 
serialization.  You would need to override #parse(HeaderElement[], 
CookieOrigin) protected method.
(3) Most difficult but 'cleanest' approach would be to resolve HTTPCLIENT-1264, 
replace the custom cookie spec with the BEST_MATCH from HttpClient and change 
HttpClient in the 4.3 branch to use an abstract factory to instantiate Cookie 
objects.

Hope this helps

Oleg
                
> There seems to be no way to get HttpClient to include cookies from a custom 
> store
> ---------------------------------------------------------------------------------
>
>                 Key: HTTPCLIENT-1267
>                 URL: https://issues.apache.org/jira/browse/HTTPCLIENT-1267
>             Project: HttpComponents HttpClient
>          Issue Type: Bug
>          Components: HttpCookie
>    Affects Versions: 4.2.2
>            Reporter: Karl Wright
>
> In the port of ManifoldCF from commons-httpclient to httpcomponents, we 
> discovered a problem or maybe a design flaw with how cookies are handled.
> What we're trying to do is to follow a certain series of html pages, and 
> record the cookies after that is done, and use exactly those cookies for a 
> subsequent series of pages.  So I have code that looks something like this:
> {code}
> DefaultHttpClient httpClient = new DefaultHttpClient();
> ...
> CookieStore cs = new BasicCookieStore();
> cs.addCookie(...);  // for each saved cookie
> httpClient.setCookieStore(cs);
> HttpGet httpget = new HttpGet(...);
> HttpResponse response = httpClient.execute(httpget);
> Cookie[] cookiesToSave = httpClient.getCookieStore().getCookies();
> [save the cookies aside]
> {code}
> What happens when I do this against a page that sets a cookie, is I get a 
> perfectly reasonable cookie, and save it.  For the next page, the code to add 
> the cookie to the custom store then seems to work fine as well.  But when I 
> watch what is transmitted for the request (via header logging) I see no 
> Cookie header being sent, and indeed the cookie seems to be lost.
> Similar logic was done with HttpState in commons-httpclient, and worked 
> perfectly there against the same website.
> I have not yet tried the HttpContext approach for implementing this - I may 
> try that while awaiting an answer to this ticket, but the above seems like it 
> ought to work, according to the documentation.

--
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