4

我试图弄清楚如何使用 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();
4

1 回答 1

2

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

也许您可以通过服务器响应发送的 cookie 内容的方式来修改它,这样您就可以评估 cookie 是否真的被发送到服务器。(你发送带有“foo”、“bar”或一些随机值的cookie,服务器会用“bar”、“foo”或类似的东西响应)

于 2012-09-19T22:37:35.357 回答