最近在做项目时用到了webview打开指定链接的网页,可已经把webview设置了cookie但始终跳转到登录页面,这明显是cookie没有设置成功导致webview没有将设置好的cookie发送出去……
1
2
3
4
5
|
CookieSyncManager.createInstance(context);
CookieManager cookieManager = CookieManager.getInstance();
cookieManager.setAcceptCookie(
true
);
cookieManager.setCookie(url, cookies);
//cookies是在HttpClient中获得的cookie
CookieSyncManager.getInstance().sync();
|
通过上述代码即可把事先保存下来的cookie和指定的url关联起来,达到保持登录的状态,避免重复登录。遗憾的是,笔者在开发过程当中严格按照上述设置cookie的代码来进行cookie的设置,可结果还是失败,始终跳转到登录页提示登录。后来返回去查看了下Android
public void setCookie(String url, String value)
Sets
url | the |
---|---|
value | the value参数的作用是cookie值的字符串形式,但格式一定要是http请求头格式"Set-Cookie"。 |
原文链接:http://www.cnblogs.com/hdtianfu/archive/2013/05/30/3108295.html
Cookie相关的Http头
在程序中生成expires
上述红色加粗的文字更让我确信了我的判断,此时此刻的心情有多么激动就不用说了,嘿嘿
于是,我在原来设置的cookie字符串上加上了domain和path字段,怀着期盼的心情run了下,哈哈,结果正确了,再也不用反复登录了。
经过此次的bug解决,在编程中不能放过任何一个细节,要对每个运行细节都清清楚楚这样才能避免盲目的去解决问题,最终浪费时间……