首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >CookieManager中的多个cookies

CookieManager中的多个cookies
EN

Stack Overflow用户
提问于 2016-05-13 22:18:51
回答 2查看 4.4K关注 0票数 5

让我们为cookie存储做好准备:

代码语言:javascript
运行
复制
CookieSyncManager.createInstance(getApplicationContext());
CookieSyncManager.getInstance().startSync();
CookieManager.getInstance().setAcceptCookie(true);

然后我手动添加一些cookies,比如PHPSESSIDRANDOM

代码语言:javascript
运行
复制
CookieManager.getInstance().setCookie("domain.com", "PHPSESSID="+phpSession);
CookieManager.getInstance().setCookie("domain.com", "RANDOM="+random);

让我们使用以下命令检查它是否正常工作:

代码语言:javascript
运行
复制
CookieManager.getInstance().getCookie("domain.com");

并得到了

代码语言:javascript
运行
复制
PHPSESSID=dba4ff392agd39b5951d10a91a0a7b56; RANDOM=266284790:1466147978:c91d0896bac59e0b

一切看起来都很好,但当我在可能的应用程序中导航到WebView活动之一时,它正在打开相同的域名网站并设置cookie,然后当我像上面那样打印cookie时,它看起来是这样的:

代码语言:javascript
运行
复制
PHPSESSID=dba4ff392agd39b5951d10a91a0a7b56;
RANDOM=266284790:1466147978:c91d0896bac59e0b;
PHPSESSID=9ecb5156cf8fc3190fbc69fd13393243;
RANDOM=265078219%3A1463147975%3Ad0448d163e9b2123

重复的条目...在此之后,我再次手动设置,例如使用setCookie进行随机设置

代码语言:javascript
运行
复制
PHPSESSID=dba4ff392agd39b5951d10a91a0a7b56; 
RANDOM=111111111:2222222222:33333336bac59e0b;
PHPSESSID=9ecb5156cf8fc3190fbc69fd13393243; 
RANDOM=265078219%3A1463147975%3Ad0448d163e9b2123

WebView设置的值不会被覆盖,只有我的“手动”输入...如何强制WebView使用我之前设置的cookie或覆盖已设置的cookie?

EN

回答 2

Stack Overflow用户

发布于 2016-11-03 23:47:00

与在the MDN docs about Set-Cookie中一样,您可以看到许多不同种类的Cookie值,可以将cookie设置为特定的Path

cookie名称=cookie值;路径=路径值

CookieManager.setCookie void setCookie (String url, String value)中,android reference说:

为给定的URL设置cookie。具有相同主机路径名称的任何现有cookie都将替换为新cookie。如果设置的cookie已过期,将忽略该cookie。

在我看来,您有重复条目的原因是因为Cookie值在不同的Path中。因此,如果您想要覆盖,则应确保主机路径名相同。

票数 3
EN

Stack Overflow用户

发布于 2016-05-14 19:08:12

代码语言:javascript
运行
复制
  private void setCookieManager(String auth_token) {
    CookieSyncManager manager = CookieSyncManager.createInstance(this);
    CookieManager cookieManager = CookieManager.getInstance();
    cookieManager.setAcceptCookie(true);
    cookieManager.removeSessionCookie();
    cookieManager.setCookie(auth_token);

    manager.sync();
}

我想你只是没有正确设置你的cookie管理器。试一试

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37212425

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档