Apache HttpClient 4.0.3 – como eu defino o cookie com sessionID para solicitação POST?

você pode me dizer como armazenar o jsessionid no cookie, para que ele possa ser passado para o servlet com a solicitação post? Estou usando o Apache HttpClient versão 4.0.3. Todas as soluções que encontrei explicam como fazer isso com o HttpClient 3.1. Eu li o tutorial e tentei isso, mas não está funcionando.

HttpPost httppost = new HttpPost(postData); CookieStore cookieStore = new BasicCookieStore(); BasicClientCookie cookie = new BasicClientCookie("JSESSIONID", getSessionId()); cookieStore.addCookie(cookie); client.setCookieStore(cookieStore); response = client.execute(httppost); 

Editar – mais explicações
Estou me conectando a servlets escritos por um amigo. Eu entrei e obtive o jsessionid . Agora eu quero enviar outro pedido e precisa passar jsessionid para fins de autorização. Servlet funciona bem porque eu usei java HttpURLConnection, configurei o cookie, passei e funcionou. Agora, com o HttpClient, não obtenho exceções, mas o código de retorno do servlet do amigo indica que não havia um sessionid na solicitação.

Outra Edição – Eu tenho uma solução Eu configurei o parâmetro do header da requisição e funcionou. Servlet reconheceu o sessionid.
httppost.setHeader("Cookie", "JSESSIONID="+ getSessionId());

Agora minha pergunta é: este método está correto?

Estou tão feliz em resolver este problema:

 HttpPost httppost = new HttpPost(postData); CookieStore cookieStore = new BasicCookieStore(); BasicClientCookie cookie = new BasicClientCookie("JSESSIONID", getSessionId()); //cookie.setDomain("your domain"); cookie.setPath("/"); cookieStore.addCookie(cookie); client.setCookieStore(cookieStore); response = client.execute(httppost); 

Tão fácil!

Eu fiz isso passando o cookie pelo HttpContext:

 HttpContext localContext = new BasicHttpContext(); localContext.setAttribute(ClientContext.COOKIE_STORE, cookieStore); response = client.execute(httppost, localContext); 
 HttpContext localContext = new BasicHttpContext(); localContext.setAttribute(HttpClientContext.COOKIE_STORE, cookieStore); response = client.execute(httppost, localContext); 

não funciona na versão 4.5 sem

 cookie.setDomain(".domain.com"); cookie.setAttribute(ClientCookie.DOMAIN_ATTR, "true"); 

Você provavelmente deve definir todas as propriedades do cookie não apenas o valor dela. setPath() , setDomain() … etc