Apache HttpClient 4.0.3 - 如何为POST请求设置带有会话ID的cookie?
2022-09-01 00:32:00
你能告诉我如何将jsessionid存储在cookie中,以便可以通过发布请求将其传递给servlet吗?我使用的是Apache HttpClient版本4.0.3。我找到的所有解决方案都解释了如何使用HttpClient 3.1做到这一点。我已经阅读了教程并尝试了此操作,但它不起作用。
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用于授权目的。Servlet工作正常,因为我使用了java HttpURLConnection,设置了cookie,传递了它,它就可以工作了。现在使用HttpClient,我没有得到任何例外,但是来自朋友的servlet的返回代码表明请求中没有会话ID。jsessionid
另一个编辑 - 我有一个解决方案我设置了请求标头的参数,它起作用了。Servlet 识别的 sessionid。httppost.setHeader("Cookie", "JSESSIONID="+ getSessionId());
现在我的问题是:这种方法正确吗?