从现在的Android 9Pie开始,没有加密的请求将永远不会起作用.默认情况下,系统会期望您默认使用TLS.You can read this feature here因此,如果您只通过HTTPS发出请求,您是安全的.但通过不同网站发出请求的应用程序怎么办,例如,类似浏览器的应用程序.
如何在Android 9 Pie中启用对所有类型HTTP和HTTPS连接的请求?
从现在的Android 9Pie开始,没有加密的请求将永远不会起作用.默认情况下,系统会期望您默认使用TLS.You can read this feature here因此,如果您只通过HTTPS发出请求,您是安全的.但通过不同网站发出请求的应用程序怎么办,例如,类似浏览器的应用程序.
如何在Android 9 Pie中启用对所有类型HTTP和HTTPS连接的请求?
实现这一点的简单方法是在AndroidManifest.xml
中使用此属性,允许所有请求都使用http
:
<application android:usesCleartextTraffic="true">
</application>
但是,如果你想为不同的链接提供more configurations个,比如,允许某些域使用http
个,但其他域不使用http
个,那么你必须提供res/xml/networkSecurityConfig.xml
文件.
要在Android 9 Pie中执行此操作,您必须在Manifestapplication
标记中设置networkSecurityConfig
,如下所示:
<?xml version="1.0" encoding="utf-8"?>
<manifest ... >
<application android:networkSecurityConfig="@xml/network_security_config">
</application>
</manifest>
然后在您的xml
文件夹中,您现在必须创建一个名为network_security_config
的文件,就像您在 list 中命名它的方式一样,并且从那里开始,您的文件的内容应该是这样的,以便在不加密的情况下启用所有请求:
<?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>
从那里开始你就可以走了.现在,您的应用程序将请求所有类型的连接.有关此主题的更多信息,请访问read here.