[Android]用WebView访问证书有问题的SSL网页
浏览:2417次 出处信息
在WebView里加载SSL网页很正常,也没什么难度。但如果要加载的SSL页面的证书有问题,比如过期、信息不正确、发行机关不被信任等,WebView就会拒绝加载该网页。PC上的浏览器会弹出证书错误的对话框,提示你是否要无视错误继续浏览。实际上在WebView里也可以这样做,以实现加载证书有问题的页面。
WebView webview = (WebView) findViewById(R.id.webview);
webview.setWebViewClient(new WebViewClient() {
@Override
public void onReceivedSslError(WebView view, SslErrorHandler handler, SslError error) {
// *** NEVER DO THIS!!! ***
// super.onReceivedSslError(view, handler, error);
// let's ignore ssl error
handler.proceed();
}
}
只需像这样重载WebViewClient的onReceivedSslError()函数并在其中执行handler.proceed(),即可忽略SSL证书错误,继续加载页面。
这里要注意的是,千万不要调用super.onReceivedSslError()。这是因为WebViewClient的onReceivedSslError()函数中包含了一条handler.cancel()(见源码,其含义是停止加载,所以如果调用了super.onReceivedSslError(),其结果就是第一次访问时无法加载,第二次以后可以加载(不知道为什么),而且还可能发生libc的段错误:
A/libc: Fatal signal 11 (SIGSEGV) at 0x00000010 (code=1)
建议继续学习:
- SSL证书的分类(按功能) (阅读:9788)
- nginx 使用 ssl (阅读:7235)
- 解决linux下安装ssl后,apache重启时需要密码 (阅读:6065)
- SSL Proxy (阅读:4691)
- 微信webview模拟器 (阅读:3449)
- SSL窃听攻击实操 (阅读:3495)
- 网页与原生App如何交互 (阅读:3388)
- 通过ssldump来分析ssl协议过程 (阅读:3485)
- 给Nginx配置一个自签名的SSL证书 (阅读:3226)
- Android利用webView调用JavaScript (阅读:2514)
QQ技术交流群:445447336,欢迎加入!
扫一扫订阅我的微信号:IT技术博客大学习
扫一扫订阅我的微信号:IT技术博客大学习
<< 前一篇:Android动画背景图自动播放的实现
后一篇:近距离端详Android ART运行时库 >>
文章信息
- 作者:charlee 来源: idv2
- 标签: SSL WebView
- 发布时间:2013-09-02 13:15:49
建议继续学习
近3天十大热文
-
[927] WordPress插件开发 -- 在插件使用 -
[133] 解决 nginx 反向代理网页首尾出现神秘字 -
[52] 如何保证一个程序在单台服务器上只有唯一实例( -
[52] 整理了一份招PHP高级工程师的面试题 -
[50] 全站换域名时利用nginx和javascri -
[50] 海量小文件存储 -
[50] 用 Jquery 模拟 select -
[49] CloudSMS:免费匿名的云短信 -
[48] Innodb分表太多或者表分区太多,会导致内 -
[47] jQuery性能优化指南
