在我的应用程序中,我从 HttpGet 请求中获取了两个 cookie,并将它们存储在 CookieManager 中,如下所示:
//Clear old cookies
CookieManager.getInstance().removeAllCookie();
CookieSyncManager.getInstance().sync();
//Save the two cookies: auth token and session info
List<Cookie> cookies = httpclient.getCookieStore().getCookies();
if (cookies != null) {
for (Cookie cookie : cookies) {
String cookieString = cookie.getName() + "=" + cookie.getValue() + "; Domain=" + cookie.getDomain();
CookieManager.getInstance().setCookie("http://alpha.mydomainname.com", cookieString);
}
System.out.println(CookieManager.getInstance().hasCookies()); //Prints false in 2.3, true in 4.0.3
CookieSyncManager.getInstance().sync();
System.out.println(CookieManager.getInstance().hasCookies()); //Also prints false in 2.3 and true in 4.0.3
}
我正在两个不同的设备上测试相同的代码,有趣的是,cookie 在 4.0.3 中正确设置(并且也在应用程序的启动之间传输),但在 2.3.3 中没有。当我说它们未设置时,我的意思是当我提供 URL 时 hasCookies() 返回 false 并且 getCookie() 返回 null。
在调用 setCookie 时,我已经尝试了 Cookie URL 的所有可能组合:“http://alpha.mydomainname.com”、“http://www.mydomainname.com”、“http://mydomainname.com”、“ mydomainname.com”、“alpha.mydomainname.com”、“.mydomainname.com”、“www.mydomainname.com”,它们都不起作用。请帮忙。