pouvez-vous me dire comment stocker jsessionid dans cookie, afin qu'il puisse être passé à la servlet avec demande de post? J'utilise Apache HttpClient version 4.0.3. Toutes les solutions que j'ai trouvées explique comment faire avec HttpClient 3.1. J'ai lu un tutoriel et essayé cela, mais cela ne fonctionne pas.Apache HttpClient 4.0.3 - comment paramétrer un cookie avec sessionID pour la requête POST
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 - explications supplémentaires
Je me connecte à servlets écrit par un ami. Je me suis connecté et j'ai obtenu jsessionid
. Maintenant, je veux envoyer une autre requête et je dois passer jsessionid à des fins d'autorisation. Servlet fonctionne bien parce que j'ai utilisé java HttpURLConnection, définir le cookie, passé et cela a fonctionné. Maintenant avec HttpClient je n'obtiens aucune exception mais le code de retour du servlet d'ami indique qu'il n'y avait aucun ID de session dans la demande.
Autre modification - J'ai une solution J'ai défini le paramètre de l'en-tête de demande et cela a fonctionné. Servlet reconnu sessionid. Maintenant, ma question est la suivante: cette méthode est-elle correcte?
Pourriez-vous nous dire ce qui ne fonctionne pas exactement? Avez-vous une exception ou la demande est-elle envoyée sans le cookie? Pouvez-vous fournir un vidage de protocole réseau? – ordnungswidrig
Essayez Fiddler http://www.fiddler2.com/fiddler2/ pour voir ce qui se passe exactement. –
Merci beaucoup! J'ai réussi à faire reconnaître le cookie par mon serveur: httppost.setHeader ("Cookie", "JSESSIONID =" + getSessionId()); – Zennichimaro