On Thu, 2011-07-21 at 00:28 +0200, Villemos, Gert wrote: > Indeed. Changing the policy to BEST-MATCH, the cookies are now registered as > expected. > > Another problem; The return of the POST request is a 302 response with a new > target. How do I follow the redirect to the actual page? Do I have to do a > GET myself? Reading the documentation it seems as if redirects should be > followed automatically, i.e. I would expect a GET to be automatically > executed after the POST. > > As far as I can see, I do not change the redirect settings anywhere in my > code. > >
Please see javadocs in this class for a detail explanation http://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/impl/client/DefaultRedirectStrategy.java You can force HttpClient to automatically redirect POST requests in all cases by using a custom redirect strategy such as this one http://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/impl/client/LaxRedirectStrategy.java Oleg > > > -----Original Message----- > From: Oleg Kalnichevski [mailto:[email protected]] > Sent: Wed 7/20/2011 4:03 PM > To: HttpClient User Discussion > Subject: Re: Understanding cookie handling - registering cookies returned in > a response > > On Wed, 2011-07-20 at 11:25 +0200, Villemos, Gert wrote: > > Well, I dont understand cookie handling. I have read the very detailed > > guide at > > http://hc.apache.org/httpcomponents-client-ga/tutorial/pdf/httpclient-tu > > torial.pdf and a lot of posts, but I still don't get it. > > > > In understand that you typically have a cookie store maintaining the > > session cookies, that you set on the client / context. > > > > What I don't get is this; > > 1. What is the difference between setting the cookie store on the client > > and on the context? > > Global cookie store is shared by all threads or execution / users, where > as cookie store set in the local context can be used by one thread / > user. > > > > 2. When I have set a cookiestore (on client and context) and execute a > > post that returns a response with cookies (such as JSESSIONID), then I > > would expect those cookies to be registered automatically in the cookie > > store for usage in the next request... but they aint (store is empty, > > see below). > > The cookie sent by the server violates the HTTP state management spec > and apparently gets rejected. > > You can use context / wire logging to find out whether or not the > cookie(s) have been rejected. > > > 3. Do I need to register the cookies manually and how do I do this? > > > > RFC_2965 policy is very strict. Use BEST-MATCH policy instead. It will > automatically pick up Netscape compatible cookie spec to handle cookies > containing legacy 'Expires' attribute. > > Hope this helps > > Oleg > > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [email protected] > For additional commands, e-mail: [email protected] > > > > > > Think green - keep it on the screen. > > This e-mail and any attachment is for authorised use by the intended > recipient(s) only. It may contain proprietary material, confidential > information and/or be subject to legal privilege. It should not be copied, > disclosed to, retained or used by, any other party. If you are not an > intended recipient then please promptly delete this e-mail and any attachment > and all copies and inform the sender. Thank you. > --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
