首页 > 编程知识 正文

androidcookie管理,android清除cookie

时间:2023-05-05 14:40:49 阅读:263524 作者:4755

WebView是基于webkit内核的UI控件,相当于一个浏览器客户端。它会在本地维护每次会话的cookie(保存在data/data/package_name/app_WebView/Cookies.db)

打开AndroidStudio右侧边栏的 DeviceFileExplorer

查看APP cookie

当WebView加载URL的时候,WebView会从本地读取该URL对应的cookie,并携带该cookie与服务器进行通信。WebView通过android.webkit.CookieManager类来维护cookie。

Cookie的生成

1.当第一次访问服务器时,会在响应头里面看到Set-Cookie信息。

Set-Cookie

浏览器会根据响应头的set-cookie信息设置浏览器的cookie并保存之.

此时 web端也可能往cookie中存放一些信息。并在请求的时候,将cookie一并带到服务器,服务器会解析cookie中信息并进行逻辑处理(辨别是那个用户,判断是否登录失效)

2.当再次请求的时候(非首次请求),浏览器会在请求头里将cookie发送给服务器。

cookie

每次请求都会发送这个cookie,并拼接上一些标识用户的特殊信息。比如用来存储用户信息的token。

服务端会根据这个cookie中的信息,去判断属于那个用户,返回相应信息。

4)cookie的工作流程可以简单用下面的图表示:

1811110-c70df24f5b865058.png

Cookie的操作

CookieManager

使用CookieManager管理cookie:从sdk21之后,webview已经内置了cookie的同步操作了。虽然不再需要关注cookie的同步,但是依然需要掌握删除cookie的操作。

/**

* 获取URL的域名

*/

private String getDomain(String url){

url = url.replace("http://", "").replace("https://", "");

if (url.contains("/")) {

url = url.substring(0, url.indexOf('/'));

}

return url;

}

1.获取cookie

CookieManager.getInstance().getCookie(getDomain(String url));

2.删除cookie操作:底层实现是异步清除数据库的记录

CookieManager.getInstance().removeAllCookies(null);

CookieManager.getInstance().flush();

3.设置cookie操作

//cookie 保存了键值对的字符串 “key=value”

CookieManager.getInstance().setCookie(getDomain(String url), cookie);

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。