从现在的 Android 9 Pie 开始,没有加密的请求将永远无法工作。默认情况下,系统会期望您默认使用 TLS。您可以在此处阅读此功能因此,如果您只通过 HTTPS 发出请求,那么您是安全的。但是,通过不同站点发出请求的应用程序呢,例如类似浏览器的应用程序。
如何在 Android 9 Pie 中启用对所有类型连接 HTTP 和 HTTPS 的请求?
实现这一点的简单方法是将此属性用于您AndroidManifest.xml允许http所有请求的位置:
AndroidManifest.xml
http
<application android:usesCleartextTraffic="true"> </application>
但是,如果您想为不同的链接进行 更多配置 ,例如,允许http某些域但不允许其他域,您必须提供res/xml/networkSecurityConfig.xmlfile.
res/xml/networkSecurityConfig.xml
要在 Android 9 Pie 中执行此操作,您必须networkSecurityConfig在 Manifestapplication标签中设置一个,如下所示:
networkSecurityConfig
application
<?xml version="1.0" encoding="utf-8"?> <manifest ... > <application android:networkSecurityConfig="@xml/network_security_config"> </application> </manifest>
然后在您的xml文件夹中,您现在必须创建一个名称network_security_config,就像您在清单中命名它的方式一样,从那里您的文件内容应该是这样的,以启用所有不加密的请求:
xml
network_security_config
<?xml version="1.0" encoding="utf-8"?> <network-security-config> <base-config cleartextTrafficPermitted="true"> <trust-anchors> <certificates src="system" /> </trust-anchors> </base-config> </network-security-config>
从那里你很高兴。现在,您的应用将对所有类型的连接发出请求。有关此主题的更多信息,请阅读此处。