android webview带cookie访问url
问题描述
在原生和h5混合开发的时候会遇到这么一个问题,用webview加载某个url时,你只是app登录了账号,但是网页却没有,所有会禁止访问此url,webview就会显示白屏。
所以要访问此url,需要带上cookie进行访问。这个cookie就是用app登录时所存储的cookie
实现方法和一些环境
网络请求方式
HttpsUrlConnection
这里既然用到了HttpsUrlConnection 说明我所加载的url是https协议
所以webview加载的时候会白屏
报错信息:
这是由于证书和域名不匹配,我的调试环境在内网服务器上,而证书是绑定在公网的域名上的。
所以需要webView跳过证书验证,
跳过证书验证
 webView.setWebViewClient(new WebViewClient() {
            @Override
            public void onReceivedSslError(WebView view, SslErrorHandler handler, SslError error) {
                Log.e("app_name",error.toString());
                handler.proceed();
            }
        });
然后设置cookie
cookie是在app使用HttpsUrlConnect发起登录请求时保存在本地的cookie
app登录成功后保存cookie到本地
SharedPreferences sharedPreferences = getSharedPreferences("login",MODE_PRIVATE);
SharedPreferences.Editor editor = sharedPreferences.edit();
String cookieval = conn.getHeaderField("Set-Cookie");
editor.putString("all_cookie",cookieval);
是一个结构如下的值:
SESSION=f19b09e9-69b2-4ab4-9daf-ea224523a092; Path=/; Secure; HttpOnly
1
写入cookie
/**
*@param cookie 上面获取到的存储在本地的cookie字符串
*@param url 要加载的页面url
*/
 private void setCookie(String cookie,String url) {
        String StringCookie = cookie;
        CookieManager cookieManager = CookieManager.getInstance();
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
            cookieManager.removeSessionCookies(null);
            cookieManager.flush();
        } else {
            cookieManager.removeSessionCookie();
            CookieSyncManager.getInstance().sync();
        }
        cookieManager.setAcceptCookie(true);
        cookieManager.setCookie(url, StringCookie);
    }
所有关键代码
 SharedPreferences sharedPreferences = getSharedPreferences("login",MODE_PRIVATE);
 String cookie = sharedPreferences.getString("session","");
 String all_cookie = sharedPreferences.getString("all_cookie","");
 Log.e("weibiao",all_cookie);
 webView = findViewById(R.id.other_account_service_webview);
 webView.setWebViewClient(new WebViewClient() {
     @Override
     public void onReceivedSslError(WebView view, SslErrorHandler handler, SslError error) {
         Log.e("weibiao",error.toString());
         handler.proceed();
     }
 });
 initWebViewSettings();//webview的一些设置
 setCookie(all_cookie,url);//在loadurl之前调用此方法
 webView.loadUrl(url);
android webview带cookie访问url的更多相关文章
- Android webview 写入cookie的解决方法以及一些属性设置
		原文地址:https://www.2cto.com/kf/201703/616868.html Android webview 写入cookie的解决方法以及一些属性设置,webview怎么设置写入C ... 
- 关于android webview 设置cookie的问题
		转自:http://blog.csdn.net/encienqi/article/details/7912733 我们在android中访问网络经常会用到Apache的HttpClient,用此类去访 ... 
- Android webview中cookie增加/修改
		最近项目需求中,需要满足往webview传递cookie,而且cookie需要增加修改: public class MainActivity extends Activity { private We ... 
- Android WebView保存Cookie登录
		因项目需要,需要在App中嵌入网页,使用Nativie方式登录,然后将cookie保存到WebView中,实现免登录功能.同步Cookie到WebView的方法网上有大量的参考资料,也可以参考下面的代 ... 
- php使用curl带cookie访问一直失败求助
		最近需要批量向织梦后台导入一些数据,但是遇到了一个头疼的问题. 环境:xampp + 别人的dede后台. 首先,利用curl发送post请求登录login.php,成功,并且保存了cookie文件. ... 
- 记一次使用 android 自带 WebView 做富文本编辑器之API、机型的兼容及各种奇葩bug的解决
		转载请声明出处(http://www.cnblogs.com/linguanh/) 目录 1,测试设备介绍 2,开源项目richeditor及CrossWalk的选择 3,遇到的bug及其解决方法 4 ... 
- android webview里获取和设置cookie
		private class MyWebViewClient extends WebViewClient { public boolean shouldOverrideUrlLoading(WebVie ... 
- HttpHelps类,用来实现Http访问,Post或者Get方式的,直接访问,带Cookie的,带证书的等方式,可以设置代理
		原文地址:http://blog.csdn.net/cdefg198/article/details/8315438 万能框架:http://www.sufeinet.com/forum.php?mo ... 
- Android WebView存在跨域访问漏洞(CNVD-2017-36682)介绍及解决
		Android WebView存在跨域访问漏洞(CNVD-2017-36682).攻击者利用该漏洞,可远程获取用户隐私数据(包括手机应用数据.照片.文档等敏感信息),还可窃取用户登录凭证,在受害者毫无 ... 
随机推荐
- Maven安装及其IDEA的配置
			相关内容网上很多,本文转载自csdn博主 击中我,https://blog.csdn.net/qq_36267611/article/details/85274885,内文略有修改. 一.下载安装前往 ... 
- navicat连接oracle报错:ORA-12737 Instant Client Light:unsupported server character set ZHS16GBK
			今天使用Navicat连接Oracle数据库,报了下面的这个错误:“ORA-12737 Instant Client Light:unsupported server character set ZH ... 
- vue中input输入第一个字符时,光标会消失,需要再次点击才能输入
			vue中input输入第一个字符时,光标会消失,需要再次点击才能输入 在这里我犯了一个小错误,v-if语法比较倾向于一次性操作,当input获取焦点时,v-if判断为true,立即刷新数据,进行渲染, ... 
- Go Node.js 生成的exe公布成windows服务
			环境变量 GOBIN E:\01_SOFT\go1.9.2\bin GOROOT E:\01_SOFT\go1.9.2 GOPATH(下载包的存放位置:go get github.com/gin-go ... 
- 洛谷 P3143 [USACO16OPEN]钻石收藏家Diamond Collector 题解
			P3143 [USACO16OPEN]钻石收藏家Diamond Collector 题目描述 Bessie the cow, always a fan of shiny objects, has ta ... 
- 10分钟用Python告诉你两个机器人聊天能聊出什么火花
			欲直接下载代码文件,关注我们的公众号哦!查看历史消息即可! 现在不是讲各种各样的人工智能嘛,AI下棋,AI客服,AI玩家--其实我一直很好奇,两个AI碰上会怎样,比如一起下棋,一起打游戏-- 今天做个 ... 
- 深入剖析mmu地址转化
			mmu(内存管理单元),是arm区别于单片机的标志之一,虚拟地址转化分为3种,常见的如下2种. 段式转化如下,由表像中的基地址加偏移地址,(细页转化跟段式转化类似,多了一个2级页表,把虚拟地址0-20 ... 
- Code Chef JUNE Challenge 2019题解
			题面 \(SUMAGCD\) 先去重,易知答案一定是一个数单独一组剩下的一组,前缀后缀\(gcd\)一下就行了 //quming #include<bits/stdc++.h> #defi ... 
- 数据结构实验之排序六:希尔排序 (SDUT 3403)
			其实,感觉好像增量不同的冒泡,希尔排序概念以后补上. #include <bits/stdc++.h> using namespace std; int a[10005]; int b[1 ... 
- Python逆向(五)—— Python字节码解读
			一.前言 前些章节我们对python编译.反汇编的原理及相关模块已经做了解读.读者应该初步掌握了通过反汇编获取python程序可读字节码的能力.python逆向或者反汇编的目的就是在没有源码的基础上, ... 
