神奇"HTTPS重定向网页"在哪里?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了神奇"HTTPS重定向网页"在哪里?相关的知识,希望对你有一定的参考价值。
参考技术A本文的合集已经编著成书, 高级Android开发强化实战 ,欢迎各位读友的建议和指导。在京东即可购买: https://item.jd.com/12385680.html
我还没有看过J. K. 罗琳的"神奇动物在哪里", 但是遇到过"神奇HTTPS重定向网页在哪里", 这是一个关于 WebView 的故事. 在android项目中, 为了更好地显示HTML网页, 必然需要重写WebView, 在其中添加一些默认属性. 当遇到HTTPS重定向网页时, 我们需要格外注意, 否则WebView会无法显示.
重定向 : 分为两种: 301, 302.
网站安全证书 : 在客户端浏览器和Web服务器之间建立一条SSL安全通道, 保证双方传递信息的安全性,并且支持用户通过服务器证书验证所访问的网站的真实性.
遇到的情况是这样的. 已被定制的 WebView , 加载在线问诊页面的 HTTP 短链
无法重定向, 显示空白, 即未调用 WebView 的 shouldOverrideUrlLoading 方法. 这个链接在浏览器可正常显示, HTTP重定向(301)至 HTTPS
同时, WebView 支持正常加载其他HTTP页面, 如
WebView 也支持正常加载其他HTTP重定向HTTPS页面, 如Amazon的HTTP链接
HTTP链接重定向至HTTPS链接
Why! 有的同学已经在我的帮助下发现问题的所在! Chrome浏览器给予正确提示. 这两个重定向的HTTPS链接, 一个是安全链接, 一个是不安全链接.
那什么是安全链接呢? 因为HTTPS使用SSL进行加密, 与不加密的网络连接相比, 使用SSL技术可以提高数据的隐私性和安全性, 并降低被第三方拦截或滥用信息的风险. 网站访问者在得知使用SSL连接时, 更愿意提供付款信息以及其他个人信息. 与 支付 相关的网页, 多数都会使用SSL.
然而, 不是所有网站HTTPS链接都在Google备案, 浏览器无法认证未备案的链接, 显示" 不安全 "标记, 而这些"不安全"的链接, 在Android的WebView中, 默认无法访问, 显示空白页面.
在Web中添加如下
结论 :
在使用通过SSL加密的HTTPS链接时, 如果这个链接的安全证书无法得到认证, 则WebView无法显示网页, 默认空白. 注意HTTP链接会重定向至HTTPS链接, 导致相同情况发生. 重写 WebViewClient 的 onReceivedSslError 方法, 信任全部证书, WebView才可正常显示. Do you get it?
OK, That\'s all! Enjoy it!
以上是关于神奇"HTTPS重定向网页"在哪里?的主要内容,如果未能解决你的问题,请参考以下文章