java - Android(9)Pie中如何允许所有网络连接类型HTTP和HTTPS?
问题描述
从现在的 Android 9 Pie 开始,没有加密的请求将永远无法工作。默认情况下,系统会期望您默认使用 TLS。您可以在此处阅读此功能因此,如果您只通过 HTTPS 发出请求,那么您是安全的。但是,通过不同站点发出请求的应用程序呢,例如类似浏览器的应用程序。
如何在 Android 9 Pie 中启用对所有类型连接 HTTP 和 HTTPS 的请求?
解决方案
实现这一点的简单方法是将此属性用于您AndroidManifest.xml
允许http
所有请求的位置:
<application android:usesCleartextTraffic="true">
</application>
但是,如果您想为不同的链接进行更多配置,例如,允许http
某些域但不允许其他域,您必须提供res/xml/networkSecurityConfig.xml
file.
要在 Android 9 Pie 中执行此操作,您必须networkSecurityConfig
在 Manifestapplication
标签中设置一个,如下所示:
<?xml version="1.0" encoding="utf-8"?>
<manifest ... >
<application android:networkSecurityConfig="@xml/network_security_config">
</application>
</manifest>
然后在您的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>
从那里你很高兴。现在,您的应用将对所有类型的连接发出请求。有关此主题的更多信息,请阅读此处。
推荐阅读
- django - Django REST Serializer 使用错误的模型进行序列化
- python - python文件写入程序运行时如何更新桌面上的文件大小
- javascript - 使用 d3.js 更新表数据
- c# - C#捕获从不在进程中的函数返回的异常?
- r - 如何设置仅在输入 3 时才显示集合向量的函数?
- javascript - 如果 URI 没有改变,例如在单页应用程序上,如何检测用户是否在新页面上?
- angular - Angular Kendo UI 全局访问
- php - 内连接循环通过
- git - 如何 git rebase 从另一个分支直接到 master 分支?
- javascript - 受控数字比例映射