最近项目几个页面要复用微信程序的网页。但是需要调用微网站登录接口,返回Cookies,webview访问需要的网页的时候携带。

并且还需要几个其他的动态改变的cookie,目的是根据这几个动态自定义cookies来决定网页的内容。如果不传,则显示最原始的网页。

下面一步一步来记录:

第一步先调用微信端登录接口,获取默认的三个cookies,即接口的Response的Header中拿到。这个操作自己找个合适的地方·进行:

List<String> cookies = response.headers("Set-Cookie");  

拿到后自行存储。

第二步,在需要调用webview加载微信端程序网页的时候,在webview加载之前调用这个方法:

/**
* 设置cookies
*/
public void setCookies(){
CookieManager cookieManager = CookieManager.getInstance(); if (Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP) {
CookieSyncManager.createInstance(getActivity());
} if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
cookieManager.setAcceptThirdPartyCookies(bindingView.wvHealthGut, true);
} if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB_MR1) {
CookieManager.setAcceptFileSchemeCookies(true);
} cookieManager.setAcceptCookie(true);
cookieManager.removeSessionCookie();
cookieManager.removeAllCookie(); List<String> cookies = "拿到刚才获取的cookies"; int count = cookies.size();
for (int i = ;i < count;i++){
cookieManager.setCookie("http://xxxx/", cookies.get(i));
} cookieManager.setCookie("http://xxxx/", "ChildId=" + childId);// 自自己添加除了上面登录认证的cookies,按照这个格式即可
cookieManager.setCookie("http://xxxx/", "KindergartenId=" + kindergartenId);
cookieManager.setCookie("http://xxxx/", "Birthday=" + birthday); CookieSyncManager.getInstance().sync();
}

最后一步:在调用完上面方法之后,设置webview属性。这步如果不设置,那么你传入的自定义的cookies,微信端网页拿到之后你这里的网页是不会刷新的,即你只能显示微信端网页没有数据的时候的样子。

setCookies();
// 设置jsEnable属性
bindingView.wvHealthGut.getSettings().setJavaScriptEnabled(true);// 最后在loadUrl
bindingView.wvHealthGut.loadUrl(webPath);

Android WebView访问网站携带登录认证Cookies和动态自定义的cookies的更多相关文章

  1. Android WebView访问SSL证书网页(onReceivedSslError)

    Android WebView访问https SSL证书网页,如淘宝,需要在onReceivedSslError添加SSL支持 webview.setWebViewClient(new WebView ...

  2. Asp.Net MVC3.0网站统计登录认证的在线人数

    Asp.Net MVC3.0网站统计登录认证的在线人数 前言 对于一个网站来说,统计在线人数是一个很重要的工作.平时也发现很多的网站论坛等都有在线人数的显示.对于一个网站如果在线人数很多,用户看到了这 ...

  3. android webview 访问 https 页面

    在android 中利用webview 控件进行开发过程中,可能会遇到 webview 访问不了https://的页面如 https://www.google.com.hk 重写onReceivedS ...

  4. android webview 访问https页面 SslError 处理

    在Android中,WebView可以用来加载http和https网页到本地应用的控件.但是在默认情况下,通过loadUrl(String url)方法,可以顺利loadUrl(“http://www ...

  5. Nginx对某个目录或整个网站进行登录认证的方法

    比如要对 网站目录下的 test 文件夹 进行加密认证 首先需要在opt 的主目录中 /opt/ 创建一个新文件 htpasswd此文件的书写格式是用户名:密码每行一个账户并且 密码必须使用函数 cr ...

  6. Android WebView存在跨域访问漏洞(CNVD-2017-36682)介绍及解决

    Android WebView存在跨域访问漏洞(CNVD-2017-36682).攻击者利用该漏洞,可远程获取用户隐私数据(包括手机应用数据.照片.文档等敏感信息),还可窃取用户登录凭证,在受害者毫无 ...

  7. 通过cookies跳过验证码登陆页面,直接访问网站的其它URL

    我每次手动访问去NN网的一家酒店,就不需要登陆,一旦我用脚本打开就会让我登陆,而登陆页面又有验证码,不想识别验证码,所以就想:“通过cookies跳过验证码登陆页面,直接访问网站的其它URL”   转 ...

  8. python 携带cookie访问网站(python接口测试post)

    最近在使用自己研究性能测试工具的时候想到,使用python向服务器不断发送数据以作为并发测试.大概情况如下: #coding=utf-8 import urllib2 import urllib im ...

  9. 轻型目录访问协议 ldap 公司内部网站的登录 单点登录

    https://zh.wikipedia.org/wiki/轻型目录访问协议 轻型目录访问协议(英文:Lightweight Directory Access Protocol,缩写:LDAP,/ˈɛ ...

随机推荐

  1. spring中quatz的多定时任务配置图文详解

    近来公司让用quatz框架做定时功能,而且还是执行多定时任务,真是苦恼. 虽然从网上搜了很多资料,但是写法上不太尽如人意,最后还是请教了螃蟹大神,给的配置建议就是简单啊,现在拿来分享下: 这里我们需要 ...

  2. 僧多粥少?还原 OpenStack 的真实“钱景”

    原文链接:http://www.oschina.net/news/57994/openstack-income-analysis 451 Research发布了OpenStack的收入分析预测,指出O ...

  3. Map使用操作系统内存的情况

    public static void main(String[] args) { System.out.println("程序启动-->可用内存:"+(getSystemMe ...

  4. input type=”file“ change事件只执行一次的问题

    js解决办法 HTML:<input id="file",type="file" onchange="upload()" /> ...

  5. HDU 5901 Count primes( Meisell-Lehmer算法模板 )

    链接:传送门 题意:计算 [ 1 , n ] 之间素数的个数,(1 <= n <= 1e11) 思路:Meisell-Lehmer算法是计算超大范围内素数个数的一种算法,原理并不明白,由于 ...

  6. N3-1 - 数组 - convert-sorted-array-to-binary-search-tree

    题目描述: Given an array where elements are sorted in ascending order, convert it to a height balanced B ...

  7. Web项目部署(Flask Angular2 Nginx)

    独立弄了一个项目,也是锻炼自己的工程能力,使用了比较常用的框架,后端Flask,前端Angular2,采用前后端完全分离的方式,通过接口传输json,但是在具体部署过程中,查找资料较为零散,故整理如下 ...

  8. Hibernate Session操作

    1.增加 @Test public void add(){ Configuration cfg=new Configuration().configure(); SessionFactory fact ...

  9. js生产随机数

    var chars = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXTZabcdefghiklmnopqrstuvwxyz"; var string_le ...

  10. java的值传递与引用传递

    一. 经常搞不清楚,当一个对象做为参数传入到方法中时,为啥有时候值能被改变,有时候又不会改变,以下说明原因: 1.当传入的参数,在方法中能被改变的为 引用传递 2.当传入的参数,在方法中没被改变的为 ...