2

我正在开发一个应登录网站的应用程序(通过http://......?password=xyz)。我为此使用 DefaultHttpClient。随着 GET 响应,网站发送一个 cookie,我想存储它以供进一步的 POST 请求。

我的问题是它client.getCookieStore().getCookies()总是收到一个空的 cookie 列表。

如果我打开http://www.google.com(插入我的预期网站),我会正确接收 cookie,但我正在使用的网站似乎以其他方式发送 cookie(这是一个 MailMan 邮件列表审核页)

我可以在 Firefox cookie 管理器中看到相应的 cookie,但在 Firebug 网络/cookie 面板中看不到(为什么?)。InternetExplorer HttpWatchProfessional 但是在记录流量时显示 cookie....

我观察到 www.google.com 发送的 cookie 和我的目标网站之间存在一些小的差异:在 HttpWatchProfessional 中,来自 google 的 cookie 被标记为“方向:发送”,而来自我网站的 cookie 被标记为“方向:已收到”。(如何发送 google cookie,而我之前清除了浏览器/cookie 缓存?)

有人可以向我解释其中的区别吗?

我的代码如下:

DefaultHttpClient client = new DefaultHttpClient();
HttpGet httpGet = new HttpGet(url);
HttpResponse execute = client.execute(httpGet);
List<Cookie> cookies = client.getCookieStore().getCookies();
4

1 回答 1

3

经过进一步调查,我发现cookie被接收,但实际上被httpclient拒绝,因为cookie的路径与调用的URL不同。

我在以下位置找到了解决方案: https ://stackoverflow.com/a/8280340/1083345

于 2012-04-06T22:43:59.210 回答