android WebView 和 HttpClient cookie同步

首先android5.0 实现了WebView与 框架的自动cookie同步,无需额外操作。

5.0一下版本需要手动同步cookie

方法如下

<pre name="code" class="java">CookieSyncManager.createInstance(context);
    CookieManager cookieManager = CookieManager.getInstance();
    cookieManager.setAcceptCookie(true);
    cookieManager.removeAllCookie();
    List<Cookie> cookies = new PersistentCookieStore(context).getCookies();
    for (Cookie cookie : cookies) {
      //注意这里为什么放肆的写了个cookie.getDomain(),而不是像api里边说的url,类似baidu.com如果是域名,直接设置“baidu.com“,
      cookieManager.setCookie(<span style="color:#ff0000;">cookie.getDomain()</span>,  cookie.getName() + "=" + cookie.getValue() + "; domain=" + cookie.getDomain() + "; path=" + cookie.getPath());
    }
    CookieSyncManager.getInstance().sync();

这涉及到了cookie的知识,设置cookie时,会先检测cookie的Domain是否和url网址的域名一致,如果不一致设置cookie失败。

所以url在里边起到作用,就是检测Domain域名, 设置在这个域名下的所有url的请求的cookie。

如果是设置一个设置二级的url,反倒不容易理解。

看看google api注释:

  /**
     * Sets a cookie for the given URL. Any existing cookie with the same host,
     * path and name will be replaced with the new cookie. The cookie being set
     * must not have expired and must not be a session cookie, otherwise it
     * will be ignored.
     *
     * @param url the URL for which the cookie is set
     * @param value the cookie as a string, using the format of the 'Set-Cookie'
     *              HTTP response header
     */
    public void setCookie(String url, String value) {
        throw new MustOverrideException();
    }

url the URL for which the cookie is set ,如果不了解cookie的原理,这让解释更容易让读者理解为,只是设置了这个子url的cookie

时间: 2024-10-13 22:20:59

android WebView 和 HttpClient cookie同步的相关文章

android webview setcookie 设置cookie

CookieSyncManager.createInstance(mWebView.getContext()); CookieManager cookieManager = CookieManager.getInstance(); <br>        //如果使用cookie.setCookie(DOMAIN,String.format("version=%s; domain=%s",mApp.getVersionCode,DOMAIN))<br> //在某

Android WebView保存Cookie登录

因项目需要,需要在App中嵌入网页,使用Nativie方式登录,然后将cookie保存到WebView中,实现免登录功能.同步Cookie到WebView的方法网上有大量的参考资料,也可以参考下面的代码: /** * Sync Cookie */ private void syncCookie(Context context, String url){         try{             Log.d("Nat: webView.syncCookie.url", url);

Android WebView使用详解包括js互调

目前很多android app都内置了可以显示web页面的界面,会发现这个界面一般都是由一个叫做WebView的组件渲染出来的,学习该组件可以为你的app开发提升扩展性. 先说下WebView的一些优点: 可以直接显示和渲染web页面,直接显示网页 webview可以直接用html文件(网络上或本地assets中)作布局 和JavaScript交互调用 一.基本使用 首先layout中即为一个基本的简单控件: <WebView android:id="@+id/webView1"

Android WebView 详解

相关API 相关类介绍 WebResourceRequest 添加于API21,封装了一个Web资源的请求信息,包含:请求地址,请求方法,请求头,是否主框架,是否用户点击,是否重定向 WebResourceResponse 封装了一个Web资源的响应信息,包含:响应数据流,编码,MIME类型,API21后添加了响应头,状态码与状态描述 WebResourceError 添加于API23,封装了一个Web资源的错误信息,包含错误码和描述 CookieManager 管理用于WebView的cook

Android如何使用读写cookie的方法

Android如何使用读写cookie的方法 可以使用SharedPreferences或者SQLite来保存用户信息 private static HashMap<String,String>  CookieContiner=new HashMap<String,String>() ;     /**  * 保存Cookie  * @param resp  */     public void SaveCookies(HttpResponse httpResponse)     

Android WebView 保持登录问题

最近有个需求是这样的:在应用中添加一个商城,商城的实现是H5(包括登录).需要将这个H5嵌到原生应用中,并在原生代码中添加支付功能. 接到这个需求的时候,想这不是很简单么,用WebView加载这个页面,通过Js回调原生方法,然后调用第三方支付,完工. 然而到实际开发的时候,问题就出现了. 首先的问题是: 1.在商城中,点击了一个商品,然后确认购买. 2.此时没有登录,会跳到登录界面. 3.没关系,那就登录一下. 4.登录完后,再次点击这个商品,然后去购买. 5.然后问题就出现了,前面不是登录过了

Android WebView 开发教程

1.WebView的使用 (a). 创建WebView的实例加入到Activity中 WebView webview = new WebView(this); setContentView(webview); 或者在xml中配置WebView <Webview android:layout_width="match_parent" android:layout_height="match_parent" > </Webview> (b). 访

android WebView详解,常见漏洞详解和安全源码

这篇博客主要来介绍 WebView 的相关使用方法,常见的几个漏洞,开发中可能遇到的坑和最后解决相应漏洞的源码,以及针对该源码的解析. 由于博客内容长度,这次将分为上下两篇,上篇详解 WebView 的使用,下篇讲述 WebView 的漏洞和坑,以及修复源码的解析. 下篇:android WebView详解,常见漏洞详解和安全源码(下) 转载请注明出处:http://blog.csdn.net/self_study/article/details/54928371. 对技术感兴趣的同鞋加群 54

你不知道的 Android WebView 使用漏洞

前言 现在很多App里都内置了Web网页(Hyprid App),比如说很多电商平台,淘宝.京东.聚划算等等,如下图 上述功能是由 Android的WebView 实现的,但是 WebView 使用过程中存在许多漏洞,容易造成用户数据泄露等等危险,而很多人往往会忽视这个问题 今天我将全面介绍 Android WebView的使用漏洞 及其修复方式 阅读本文前请先阅读: Android开发:最全面.最易懂的Webview详解 最全面 & 最详细的 Android WebView与JS的交互方式 汇