最近遇到了一个很神奇的bug(我自己感觉挺奇怪的),App在有网络的情况下突然不能访问网络了,这个时候可能大家会想是不是没有加网络权限啊,答案是加了。
最神奇的是,不是所有的手机都不可以访问网络,在国内所有的手机都是可以正常的访问网络,而到了国外就神奇的不能访问网络了,这个时候你可能会想中国的流量到了国外就不能访问网络了或者是各种手机自身的原因吧,如果一部手机可以让你产生这种想法那如果是三部手机呢?如果跟你说其中有两部手机之前可以用这个App访问到服务器呢?如果说这三部手机访问其他的中国网站和使用其他中国App都没有问题呢?这个时候是不是就感觉这个问题很神奇了?
经过多方面的排查最后终于找到的会导致这个问题出现的原因。大家应该都知道http和https之间的区别吧!(不知道可以自行百度),https比http多了一个证书,现在基本都是在用https,出现这个情况的原因就是因为就在前几天换了一个新的证书,之后我们在国内可以正常使用就没有过多的去往这个方面去想,结果就导致了悲剧的发生。
经过上面的这是说明可能有些人会很好奇,为什么换一个证书国外就不能访问网络了却在国内没有问题吧?证书也是分不同种类的,有的是国际通用的而有一些是国产的证书(由于价格原因大部分人都会选择后者),之后就是因为在国外检测到证书是不被信任的,所以导致了在中国可以正常的访问服务器而在国外访问不了的悲剧。
那么遇到这种情况如何解决呢?我给大家提供两种方案供大家参考:
1.更换新的证书,使用全球通用的证书。
2.信任此证书,信任此证书之后也就可以进行网络请求了。
当然如果你们发布的不是国际版的App就没有必要考虑这些问题了。如果是国际版使用第二种方式解决可以参考下面的地址:
https://www.jianshu.com/p/3e9ec52aacec