【Android】WebView设置Cookie

在网上搜索给WebView设置Cookie这个问题得到的回答都是以下这段代码:

CookieSyncManager.createInstance(context);
CookieManager cookieManager = CookieManager.getInstance();
cookieManager.setAcceptCookie(true);
cookieManager.setCookie(url, cookies);//cookies是在HttpClient中获得的cookie
CookieSyncManager.getInstance().sync();

但是我用这段代码在实际运行的时候并没有让 WebView 带上Cookie,测试机器系统为Android 4.2.2,于是又去网络上搜索了下,发现了这个答案:

只有当Cookie的Domain和Path与请求的URL匹配时,才会发送这个Cookie成功。

在Java中,可以通过 Cookie 的 getDomain()getPath() 方法来获取我们想要的 Domain 和 Path。
还需要注意的另外一件事情就是如果上传的 Cookie 不仅仅要求 sessionid,还要求其他项目,那么你必须采用以下的方式来设置Cookie:
key=value;domain=domainContent;path=pathContent
例如:
sessionid=xxxxxx;domain=domainStr;path=pathStr
max_age=xxxxxx;domain=domainStr;path=pathStr

每一个条目都要这样操作,因为CookieManager只能够得到 “;” 前面的数据。

参考链接:
http://kinbos.blog.51cto.com/2092114/1347859
http://www.cnblogs.com/breeze1988/articles/3976035.html

你可能感兴趣的:(android,cookie,webView)