您能告诉我如何将JSessionID存储在cookie中,以便通过post请求将其传递给servlet吗?我使用的是ApacheHTTPClient4.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。现在,我想发送另一个请求,需要通过JSessionID进行授权。
Servlet很好用,因为我使用了JavaHTTPuxLink,设置了Cookie,通过了它,它工作了。现在,对于httpclient,我没有得到任何异常,但是friend的servlet返回的代码表明请求中没有sessionid。
另一个编辑-我有一个解决方案
我设置了请求头的参数,它工作了。servlet识别出sessionid。
httppost.setHeader("Cookie", "JSESSIONID="+ getSessionId());
现在我的问题是:这个方法正确吗?
最佳答案:
我很高兴能解决这个问题: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);
很容易!