Android:处理来自HTTP Get-Request的Cookie

时间:2012-03-31 14:50:19

标签: android http cookies http-get httpcookie

我正在开发一个应该登录网站的应用程序(通过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被标记为“方向:收到”。 (如果我之前清除了浏览器/ cookie缓存,那么如何发送谷歌cookie?)

有人可以向我解释一下这个区别吗?

我的代码如下:

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

1 个答案:

答案 0 :(得分:3)

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

我找到了解决方案: https://stackoverflow.com/a/8280340/1083345