通过HttpClient接受所有Cookie
因此,这是我的应用当前的设置方式:
1.)登录活动。2.)登录后,可能会触发其他使用PHP脚本的活动,这些活动需要从登录发送的cookie。
我在整个应用程序中使用一个HttpClient来确保使用相同的cookie,但是我的问题是3个cookie中有2个被拒绝了。我不在乎cookie的有效性,但我确实需要接受它们。我尝试设置CookiePolicy,但这也没有用。这就是logcat所说的:
11-26 10:33:57.613: WARN/ResponseProcessCookies(271): Cookie rejected: "[version: 0] [name: cookie_user_id][value: 1][domain: www.trackallthethings.com][path: trackallthethings][expiry: Sun Nov 25 11:33:00 CST 2012]". Illegal path attribute "trackallthethings". Path of origin: "/mobile-api/login.php"11-26 10:33:57.593: WARN/ResponseProcessCookies(271): Cookie rejected: "[version: 0][name: cookie_session_id][value: 1985208971][domain: www.trackallthethings.com][path: trackallthethings][expiry: Sun Nov 25 11:33:00 CST 2012]". Illegal path attribute "trackallthethings". Path of origin: "/mobile-api/login.php"
我确信我的实际代码是正确的(我的应用仍然可以正确登录,只是不接受上述cookie),但是无论如何这里是这样:
HttpGet httpget = new HttpGet(//MY URL);HttpResponse response;
response = Main.httpclient.execute(httpget);
HttpEntity entity = response.getEntity();
InputStream in = entity.getContent();
BufferedReader reader = new BufferedReader(new InputStreamReader(in));
StringBuilder sb = new StringBuilder();
从这里,我使用StringBuilder来简单地获取响应的字符串。没有什么花哨。
我了解我的Cookie被拒绝的原因是由于“路径属性非法”(我在/mobile-
api/login.php中运行脚本,而cookie的trackallthethings返回的路径仅为“ /”)
,但无论如何我都想接受Cookie。有没有办法做到这一点?
回答:
您面临的问题似乎是出于隐私/安全目的设计的。通常,不允许任何资源设置它将无法接收的cookie。在这里,您尝试使用trackallthethings
资源/mobile-api/login.php
无法正常访问的路径设置cookie 。
在这里,您有以下两种选择
- 使用两个资源都可以访问的路径(可能是root
'/'
)设置cookie 或 - 定义自定义cookie策略并注册您自己的cookie支持。这是相关的文档和 。
希望这可以帮助。
以上是 通过HttpClient接受所有Cookie 的全部内容, 来源链接: utcz.com/qa/400055.html