关闭

webview使用sslError解决https跳转报错的问题

1246人阅读 评论(0) 收藏 举报

到底如何使用WebView访问https的url——处理SslError呢?
在Android中,WebView是用来load http和https网页到本地应用的控件。在默认情况下,通过loadUrl(String url)方法,可以顺利load。但是,当load有ssl层的https页面时,如果这个网站的安全证书在Android无法得到认证,WebView就会变成一个空白页,而并不会像PC浏览器中那样跳出一个风险提示框。因此,我们必须针对这种情况进行处理。(这个证书限于2.1版本以上的Android 系统才可以)

Android的处理要用到两个类

(1)import android.NET.http.SslError;

(2)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); 其他处理  

  }  

查看Android浏览器源码在TabControl.Java类中SubWindowClient方法中找,如果只是简单的接受所有证书的话,就直接调process()方法就行了

 

但是sslerror是从2.2才开始提供的。之前的版本怎么办?
可以把android2.2中onReceivedSslError()的源码导入到自己的工程中,具体方法如下:
先把android2.2包中的SslError.java和WebViewClient.java导入到自己的工程中,在导入时需要建立和android2.2源码包中一样的包名。然后在用webview的时候导包就导自己工程里的这个包名就行!

0
0
查看评论

WebView使用的那些坑-Https

Boss告诉我我们要访问Https的网址,但是我们没有安全证书,因为客户不想要买域名,不想花那个钱。 给我的服务器地址是这样的:https://192.168.3.19/view/video/video_p.html先说一下我们最后的解决方案:1.地址改为:https://192.168.3.19:...
  • qq_36606922
  • qq_36606922
  • 2017-09-12 14:20
  • 209

iOS uiwebview load request 出错

2016-04-25 12:53:46.464 TestWebView[12473:263632] NSURLSession/NSURLConnection HTTP load failed (kCFStreamErrorDomainSSL, -9802) 2016-04-25 12:53:4...
  • woshidaniu
  • woshidaniu
  • 2016-04-25 13:09
  • 1437

UIWebView 使用中遇到的问题(NSURLSession/NSURLConnection HTTP load failed (kCFStreamErrorDomainSSL, -9802))

在使用WebView打开网页的时候遇到了问题,没找到很好地解决方案,于是查看了国外码农的见解,找到思路解决了问题,在这里分享给大家,希望可以有帮助……(PS:如果有问题我们可以讨论,求同存异) 在iOS9后引入了新特性App Transport Security (ATS)。详情:App Tran...
  • Cituses
  • Cituses
  • 2016-07-18 17:25
  • 1107

用WebView访问证书有问题的SSL网页

在WebView里加载SSL网页很正常,也没什么难度。但如果要加载的SSL页面的证书有问题,比如过期、信息不正确、发行机关不被信任等,WebView就会拒绝加载该网页。PC上的浏览器会弹出证书错误的对话框,提示你是否要无视错误继续浏览。实际上在WebView里也可以这样做,以实现加载证书有问题的页面...
  • sd19871122
  • sd19871122
  • 2017-01-20 16:29
  • 2217

webView绕过信任证书访问https

在网上找了好久都没找到解决方法,大家可以试试这个,我的解决了。
  • Cai_guange1226
  • Cai_guange1226
  • 2015-12-24 15:04
  • 3670

Nginx配置SSL并强制http跳转到https

配置信息如下 server { listen 80; server_name ssl.lanbing.org; rewrite ^/(.*) https://ssl.lanbing.org/$1 permanent; #关键代码 } server { l...
  • yangli91628
  • yangli91628
  • 2015-03-16 17:24
  • 4471

解决WebView加载Https无法显示的问题

到底如何使用WebView访问https的url——处理SslError呢?eoe为朋友们进行解答。 在Android中,WebView是用来load http和https网页到本地应用的控件。在默认情况下,通过loadUrl(String url)方法,可以顺利load。但是,当load有s...
  • zouchengxufei
  • zouchengxufei
  • 2014-04-14 09:21
  • 2217

Android 让WebView完美支持https双向认证(SSL)

这是@happyzhang0502   关于webview https的建议:  最近做一个安全级别比较高的项目,对方要求使用HTTPS双向认证来访问web网页。双向认证在android5.0以上很好解决,但是在Android5.0以下,webviewclie...
  • kpioneer123
  • kpioneer123
  • 2016-05-24 17:39
  • 8036

Android Webview https ssl 空白页解决方法

在WebView里加载SSL网页很正常,也没什么难度。但如果要加载的SSL页面的证书有问题,比如过期、信息不正确、发行机关不被信任等,WebView就会拒绝加载该网页。PC上的浏览器会弹出证书错误的对话框,提示你是否要无视错误继续浏览。实际上在WebView里也可以这样做,以实现加载证书有问题的页面...
  • ceo991
  • ceo991
  • 2015-06-05 12:00
  • 1529

【Android】WebView加载https页面不能正常显示资源问题

前言  在使用WebView加载https资源文件时,如果认证证书不被Android认可,那么会出现无法成功加载对应资源问题。那么,我们就要针对这一状况作出对应的处理。解决步骤1. 启用mixed content在Android5.0中,WebView方面做了些修改,如果你的系统target api...
  • Crazy_zihao
  • Crazy_zihao
  • 2016-06-02 14:03
  • 9221
    本人新书
    个人资料
    • 访问:2223421次
    • 积分:29361
    • 等级:
    • 排名:第209名
    • 原创:763篇
    • 转载:267篇
    • 译文:25篇
    • 评论:395条
    技术公众号
      欢迎关注我的公众号,每天为你推荐最新的博文,与大家一起学习共同进步!
    博客专栏
    站长统计
    微博
    最新评论
    本人新作

    新书