美文网首页
android WebView写入清除cookie机制

android WebView写入清除cookie机制

作者: Gambol_r | 来源:发表于2019-08-22 00:20 被阅读0次

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
  1. 每次请求都会发送这个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);

相关文章

  • android WebView写入清除cookie机制

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

  • [Android]Cookie研究

    学习自:android WebView的cookie机制【WebView的cookie机制 】轻松搞定WebVie...

  • Android 开发中 Cookie 持久化研究

    参考:android WebView的cookie机制Android中Cookie获取、保存以及同步OkHttp3...

  • android webview设置cookie

    开发中使用webview加载url时,需要带上原生登录的用户信息,所以考虑往cookie中写入,写入cookie的...

  • android WebView的cookie机制

    将cookie同步到WebView(推荐)参考:文/CrazyCodeBoy(简书作者) android WebV...

  • 2019-08-25WKWebView踩坑1.0

    实现JS读取iOS本地写入的LocalStorage 判断清除缓存 配置webView 设置 WKProcessP...

  • iOS清除UIWebView缓存

    使用iOS的webview会自动进行缓存,在开发的时候要记得清除Cookie和缓存。

  • Android Webview使用攻略

    Android Webview使用攻略 加载url的方式: webView前进后退: 常见的处理网页后退: 清除缓...

  • Cookie

    Cookie: Cookie是服务端写入客户端的一些数据 由浏览器保存 默认在会话结束时清除Cookie 从用户访...

  • iOS webview 清除缓存

    使用iOS的UIWebview会自动进行缓存,我们在开发的时候要记得清除Cookie和缓存。 _webView =...

网友评论

      本文标题:android WebView写入清除cookie机制

      本文链接:https://www.haomeiwen.com/subject/vrlisctx.html