原因
由于Android P(9)系统的设备 ,限制了非加密的文明流量的http(https没事)网络请求,导致该应用无法进行http协议的网络请求,所以在Android9以上的设备要用http请求需做些配置,不过最好不要再使用http改用https。
解决办法
首先,在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"
大工搞成!!
提示:
上面的方法是给所有的http权限都打开了,如果只是希望某几个请求的话可以修改xml文件如下:
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
<domain-config cleartextTrafficPermitted="true">
<domain includeSubdomains="true">XXX.XXX.XXX.XXX</domain>
</domain-config>
</network-security-config>
网友评论