使用HttpComponents设置和检索Cookie

时间:2012-09-19 19:53:49

标签: java apache-httpcomponents

我试图弄清楚如何使用HttpComponents设置和检索cookie,但我找不到可靠的文档,特别是在请求上设置cookie时。我有什么似乎工作,但同时我无法确认我设置的cookie是否正确发送。

我注意到我在请求上设置的cookie在调用client.execute()之后也在CookieStore中,但是我不确定是不是因为我在调用client.execute()之前将它添加到CookieStore中(也许它在没有实际发送请求的情况下保留在CookieStore中?)。有没有一种好方法可以确认发送cookie?

HttpGet get = new HttpGet("http://example.com/");
DefaultHttpClient client = new DefaultHttpClient();

// set the cookies
CookieStore cookieStore = new BasicCookieStore();
BasicClientCookie cookie = new BasicClientCookie("foo", "bar");
cookie.setDomain("example.com");
cookie.setPath("/something/");
cookieStore.addCookie(cookie);    
client.setCookieStore(cookieStore);

// get the cookies
HttpResponse response = client.execute(get);
List<Cookie> cookies = client.getCookieStore().getCookies();

1 个答案:

答案 0 :(得分:2)

刚刚找到了以下示例,演示了如何在登录示例中使用Cookie:HttpComponents Example with Cookies

也许您可以通过服务器响应发送的cookie内容的方式对其进行修改,因此您可以评估cookie是否真的发送到服务器。 (您使用“foo”,“bar”或一些随机值发送cookie,服务器将以“bar”,“foo”或类似的方式响应)