Apache HttpClient 4.0.3 - comment puis-je placer le biscuit avec sessionID pour la requête POST?

pouvez-vous me dire comment stocker jsessionid dans les biscuits, de sorte qu'il peut être transmis à la servlet avec une requête post? Je suis à l'aide d'Apache HttpClient la version 4.0.3.
Toutes les solutions que j'ai trouvé qui explique comment faire cela avec HttpClient 3.1.
J'ai lu les tuto et essayé cela, mais il ne fonctionne pas.

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

Modifier - pour de plus amples explications

Je me connecte à servlets écrit par un ami. Je me suis connecté et obtenu jsessionid. Maintenant, je veux envoyer une autre demande et le besoin de passer jsessionid pour l'autorisation but.
Servlet fonctionne très bien parce que j'ai utilisé java HttpURLConnection, placer le biscuit, passé et cela a fonctionné. Maintenant, avec HttpClient je n'ai pas des exceptions, mais le code de retour de l'ami de servlet indique qu'il n'y a pas d'id de session dans la demande.

Un autre Edit - j'ai une solution
J'ai régler le paramètre d'en-tête de demande et cela a fonctionné. Servlet reconnu sessionid.

httppost.setHeader("Cookie", "JSESSIONID="+ getSessionId());

Maintenant, ma question est: cette méthode Est-elle correcte?

  • Pourriez-vous nous dire exactement ce qui ne fonctionne pas? Obtenez-vous une exception ou est la demande de l'envoyer sans le cookie? Pouvez-vous fournir un protocole de réseau de vidage?
  • Essayez Fiddler fiddler2.com/fiddler2 pour voir ce qu'il se passe exactement.
  • Merci beaucoup! J'ai réussi à obtenir mon serveur de reconnaître le cookie par l'intermédiaire des: httppost.setHeader("Cookie", "JSESSIONID="+ getSessionId());
  • tout simplement génial!! vous me sauver
InformationsquelleAutor hitan | 2010-11-12