Hello Oleg,

 

I’m trying to send cookies to a servlet with a simple app. Following the
tutorial:

 

HttpContext localContext = new BasicHttpContext();

CookieStore cookieStore  = new BasicCookieStore();

 
BasicClientCookie stdCookie = new BasicClientCookie("name", "value");
stdCookie.setVersion(1);
stdCookie.setDomain(".mycompany.com");
stdCookie.setPath("/");
stdCookie.setSecure(true);
 
// Set attributes EXACTLY as sent by the server 
stdCookie.setAttribute(ClientCookie.VERSION_ATTR, "1");
stdCookie.setAttribute(ClientCookie.DOMAIN_ATTR, ".mycompany.com");

 

 cookieStore.addCookie(stdCookie);

 localContext.setAttribute(ClientContext.COOKIE_STORE, cookieStore);

 

 HttpEntity entity = objHttp.execute(objPost, localContext).getEntity();

 

 

This does not work (at least for me). To work, you need to add:

 

stdCookie.setAttribute(ClientCookie.PATH, "/");
 
If I forget any of the “set” statement, or any of the “setAttribute”
statement, it does not work.
 
 
The question is: Why have we to set twice the components of the
‘BasicClientCookie’, the first using “stdCookie.set” and the second using
“stdCookie.setAttribute”?
 
And should I set “ClientCookie.SECURE_ATTR” and “ClientCookie.MAX_AGE_ATTR”
?
 
 
And the second part: when the servlet receives this cookie, it is resent to
another servlet using the same sequence of operations. But debugging, one
can see that the cookie is not added to the cookieStore (the sentence
‘cookieStore.addCookie(stdCookie);’ does not add anything to ‘cookieStore’).
 
Can you help me?
 
 
Thanks in advance,
 
Joan.

 

Reply via email to