老司机常规翻车,关于高版本9.0+请求失效

  • 作者:彭老师
  • 日期:2020-06-22
  • 类型:Android
  • 说明:本文源于彭老师手写摘要,如需转载请带上链接或注明出处!

在android9.0+版本,由于安全性高了,所有不做处理http将不能使用

服务器请求不管是正式环境还是测试环境,把http改为https,说实话不现实,第一很多老项目难以重构,第二添加证书很多后台开发者根本不会

将就下,做兼容吧

  • 由于 Android P 限制了明文流量的网络请求,非加密的流量请求都会被系统禁止掉
  • 如果当前应用的请求是 htttp 请求,而非 https,这样就会导系统禁止当前应用进行该请求
  • 如果 WebView 的 url 用 http 协议,同样会出现加载失败,
  • https 不受影响

(1):在清单文件中设置networkSecurityConfig属性

<manifest ... >
<application
android:networkSecurityConfig="@xml/network_security_config">
</application>
</manifest>

(2):在res/xml文件夹下创建network_security_config.xml

<network-security-config>
<base-config cleartextTrafficPermitted="true">
<trust-anchors>
<certificates src="system" />
</trust-anchors>
</base-config>
</network-security-config>