安卓 网络安全策略不允许与 xxx 进行明文通信 解决方案

1 minute read

搭建好请求框架设置 baseUrl 开始请求,出现 Toast 报错

1CLEARTEXT communication to api.xxx.com not permitted by network security policy

原因是因为 Android P 之后限制了未经加密的明文网络流量,所以 OkHTTP3 会抛出该异常。更低的版本没有影响

解决方法 1

使用 HTTPS 安全连接,即在 baseUrl 前添加 https://

解决方法 2

配置网络安全策略,绕过明文流量限制

res/xml 下新建 network_security_config.xml

1<?xml version="1.0" encoding="utf-8"?>
2<network-security-config>
3    <base-config cleartextTrafficPermitted="true" />
4</network-security-config>

然后在 AndroidManifest.xmlapplication 节点中添加

1<application android:networkSecurityConfig="@xml/network_security_config">
2        ...
3</application>