原文地址:https://www.jianshu.com/p/e0c84b63c07b
https://www.cnblogs.com/zdz8207/p/Android-28-http-https.html
问题原因:
由于 Android P(版本27以上) 限制了明文流量的网络请求,非加密的流量请求都会被系统禁止掉。
如果当前应用的请求是 htttp 请求,而非 https ,这样就会导系统禁止当前应用进行该请求
解决办法:
1 targetSdkVersion 降级回到 27 (测试有效)
2 服务器和本地应用都改用 https (推荐)(没测试)
3 在 res 下新建一个 xml 目录,然后创建一个名为:network_security_config.xml 文件 ,该文件内容如下
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
<base-config cleartextTrafficPermitted="true" />
</network-security-config>
在 AndroidManifest.xml application增加配置android:networkSecurityConfig="@xml/network_security_config"
<application
android:name=".MyApplication"
android:networkSecurityConfig="@xml/network_security_config"
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"