你能告訴我如何將jsessionid存儲在cookie中,因此它可以通過post請求傳遞給servlet嗎?我正在使用Apache HttpClient版本4.0.3。 我發現的所有解決方案都解釋瞭如何使用HttpClient 3.1完成此操作。 我讀過教程,並試過這個,但它不工作。Apache HttpClient 4.0.3 - 如何爲POST請求設置cookie和sessionID
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);
編輯 - 進一步解釋
我連接到由朋友寫的servlet。我已經登錄並獲得jsessionid
。現在我想發送另一個請求,並且需要傳遞jsessionid以進行授權。 Servlet工作正常,因爲我使用java HttpURLConnection,設置cookie,通過它,它工作。現在使用HttpClient,我沒有得到任何異常,但來自friend的servlet的返回碼指示請求中沒有sessionid。
另一個編輯 - 我有一個解決方案 我設置請求標題的參數,它的工作。 Servlet識別的sessionid。
httppost.setHeader("Cookie", "JSESSIONID="+ getSessionId());
現在我的問題是:這種方法是否正確?
你能告訴我們究竟是不行的工作?您是否收到異常或請求是否在沒有cookie的情況下發送?你能提供網絡協議轉儲嗎? – ordnungswidrig 2010-11-12 15:38:11
嘗試提琴手http://www.fiddler2.com/fiddler2/看看究竟發生了什麼。 – 2010-11-12 15:59:02
非常感謝! 我設法讓我的服務器通過以下方式識別cookie: httppost.setHeader(「Cookie」,「JSESSIONID =」+ getSessionId()); – Zennichimaro 2012-09-28 09:06:29