Android9.0以下网络请求一切正常,换上9.0一直报一个异常 我用的网络框架retrofit
java.net.UnknownServiceException: CLEARTEXT communication to qpi.zhenghongwy.com not permitted by network security policy
在Android P系统的设备上,如果应用使用的是非加密的明文流量的http网络请求,则会导致该应用无法进行网络请求,https则不会受影响,同样地,如果应用嵌套了webview,webview也只能使用https请求。
有人认为 Android P 上所有的 App 都需要使用 TLS 加密会降低上网体验,事实上这是一种误解,至于 App 对于少数旧服务器的连接如果非要使用明码传输,开发者需要更改 App 的网络安全配置以允许此类连接。
经过查阅资料和查看9.0新特性确定网络安全传输问题,那么就找解决方案
1、在res下创建一个xml文件夹,在xml下面创建network_security_config.xml
xml内容为
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
<base-config cleartextTrafficPermitted="true" />
</network-security-config>
2、在AndroidManifest.xml下的application节点下配置
android:networkSecurityConfig="@xml/network_security_config"
3、接口地址http改用https
4、搞定
5、再加一种解决办法
application标签下添加
android:usesCleartextTraffic="true"