android教程使用webview访问https的url处理sslerror示例

在Android中,WebView是用来load http和https网页到本地应用的控件。在默认情况下,通过loadUrl(String url)方法,可以顺利load诸如,http://www.baidu.com之类的页面。但是,当load有ssl层的https页面时,如https://money.183.com.cn/,如果这个网站的安全证书在Android无法得到认证,WebView就会变成一个空白页,而并不会像PC浏览器中那样跳出一个风险提示框。因此,我们必须针对这种情况进行处理。

Android的处理要用到两个类


代码如下:

import android.net.http.SslError;
import android.webkit.SslErrorHandler;

具体的用法如下:

代码如下:

WebView wv = (WebView) findViewById(R.id.webview);
wv.setWebViewClient(new WebViewClient(){
public void onReceivedSslError(WebView view, SslErrorHandler handler, SslError error){
//handler.cancel(); 默认的处理方式,WebView变成空白页
//handler.process();接受证书
//handleMessage(Message msg); 其他处理
}

如果只是简单的接受所有证书的话,就直接调process()方法就行了。

(0)

相关推荐

  • Android 安全加密:Https编程详解

    Android安全加密专题文章索引 Android安全加密:对称加密 Android安全加密:非对称加密 Android安全加密:消息摘要Message Digest Android安全加密:数字签名和数字证书 Android安全加密:Https编程 以上学习所有内容,对称加密.非对称加密.消息摘要.数字签名等知识都是为了理解数字证书工作原理而作为一个预备知识.数字证书是密码学里的终极武器,是人类几千年历史总结的智慧的结晶,只有在明白了数字证书工作原理后,才能理解Https 协议的安全通讯机制.

  • 浅析Android系统中HTTPS通信的实现

    前言 最近有一个跟HTTPS相关的问题需要解决,因此花时间学习了一下Android平台HTTPS的使用,同时也看了一些HTTPS的原理,这里分享一下学习心得. HTTPS原理 HTTPS(Hyper Text Transfer Protocol Secure),是一种基于SSL/TLS的HTTP,所有的HTTP数据都是在SSL/TLS协议封装之上进行传输的.HTTPS协议是在HTTP协议的基础上,添加了SSL/TLS握手以及数据加密传输,也属于应用层协议.所以,研究HTTPS协议原理,最终就是研

  • Android项目中使用HTTPS配置的步骤详解

    前言 如果你的项目的网络框架是okhttp,那么使用https还是挺简单的,因为okhttp默认支持HTTPS.传送门 下面话不多说了,来一起看看详细的介绍: Android 使用 HTTPS 配置的步骤. 1.step 配置hostnameVerifier new HostnameVerifier() { @Override public boolean verify(String hostname, SSLSession session) { return true; } }: 2.step

  • android教程使用webview访问https的url处理sslerror示例

    在Android中,WebView是用来load http和https网页到本地应用的控件.在默认情况下,通过loadUrl(String url)方法,可以顺利load诸如,http://www.baidu.com之类的页面.但是,当load有ssl层的https页面时,如https://money.183.com.cn/,如果这个网站的安全证书在Android无法得到认证,WebView就会变成一个空白页,而并不会像PC浏览器中那样跳出一个风险提示框.因此,我们必须针对这种情况进行处理. A

  • Android中的webview监听每次URL变化实例

    通过这个可以监听Android中webview访问的URL变化: webView.setWebViewClient(new WebViewClient(){ @Override public void onLoadResource(WebView view, String url) { Log.e("hao","WebView3:"+view.getUrl()+"\\n"+" URL3:"+url); super.onLoad

  • Java/Android 获取网络重定向文件的真实URL的示例代码

    前言: 今天在测试使用第三方提供的URL进行文件下载的时候,得到了一个被重定向的url.很不幸的是这个URL对于我来说没办法进行文件下载.这时候就需要获得重定向文件的真实URL. 问题分析 : 其实Java 使用HttpURLConnection下载的的时候,会自动下载重定向后的文件,但是我们无法获知目标文件的真实文件名,文件类型,用下面的方法可以得到真实的URL 解决方案 : 需要注意的是在Android 4.0之后网络请求不能在主线程执行 new Thread(new Runnable()

  • Android 7.0系统webview 显示https页面空白处理方法

    最近开发的时候,偶尔遇到在线上稳定运行的webview内嵌的h5页面加载不出来,一直定位不到具体原因(因为我们自己做的兼容性测试上不重现),看系统日志也没有发现什么问题,后来咨询了用户手机的型号,发现是7.0或者6.0以上的个别机型会出现. 后来借到了一台业务的手机,型号是:三星 S6 EDGE,SM-G9205,在大多数机型上运行正常的页面,在这个机器上如下图: 这个页面在近期的变更是从http切换到https,由于之前的页面是http,我们在切换的时候,除了url之外,并未对webview的

  • 在Android环境下WebView中拦截所有请求并替换URL示例详解

    需求背景 接到这样一个需求,需要在 WebView 的所有网络请求中,在请求的url中,加上一个xxx=1的标志位. 例如 http://www.baidu.com 加上标志位就变成了 http://www.baidu.com?xxx=1 寻找解决方案 从 Android API 11 (3.0) 开始,WebView 开始在 WebViewClient 内提供了这样一条 API ,如下: public WebResourceResponse shouldInterceptRequest(Web

  • Android开发之WebView组件的使用解析

    在 Android 手机中内置了一款高性能 webkit 内核浏览器, SDK 中封装为一个叫做 WebView 组件. WebView 类是 WebKit 模块 Java 层的视图类,( 所有需要使用 Web 浏览功能的Android应用程序都要创建该视图对象显示和处理请求的网络资源.目前,WebKit 模块支持 HTTP.HTTPS.FTP 以及 javascript 请求. WebView 作为应用程序的 UI 接口,为用户提供了一系 列的网页浏览.用户交互接口,客户程序通过这些接口访问

  • Android开发实现webview中img标签加载本地图片的方法

    本文实例讲述了Android开发实现webview中img标签加载本地图片的方法.分享给大家供大家参考,具体如下: 在网上查了很多教程,感觉很麻烦,各种方法,最后实践很简单,主要是两步: WebSettings webSettings=webView.getSettings(); //允许webview对文件的操作 webSettings.setAllowUniversalAccessFromFileURLs(true); webSettings.setAllowFileAccess(true)

  • Android APP之WebView校验SSL证书的方法

    Android系统的碎片化很严重,并且手机日期不正确.手机根证书异常.com.google.android.webview BUG等各种原因,都会导致WebViewClient无法访问HTTPS站点.SSL错误的处理方式十分关键,如果处理不当,可能导致中间人攻击,黑客窃听数据,进而引发安全事故. 严谨地处理onReceivedSslError尤为重要.请参考以下代码,原理是:如果webview报告SSL错误,程序将会对服务器证书进行强校验,如果服务器传入证书的指纹(sha256)与记录值一致,说

  • Android编程实现WebView全屏播放的方法(附源码)

    本文实例讲述了Android编程实现WebView全屏播放的方法.分享给大家供大家参考,具体如下: 最近因为项目要用webview加载html5的视频,开始不能全屏播,做了很久才做出来!那按我的理解说下怎么实现全屏吧. 首先写布局文件activity_main.xml: <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.

  • Android编程使用WebView实现与Javascript交互的方法【相互调用参数、传值】

    本文实例讲述了Android编程使用WebView实现与Javascript交互的方法.分享给大家供大家参考,具体如下: Android中可以使用WebView加载网页,同时Android端的Java代码可以与网页上的JavaScript代码之间相互调用. 效果图: (一)Android部分: 布局代码: <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools=&qu

随机推荐