从现在的 Android 9 Pie 开始,没有加密的请求将永远无法工作。默认情况下,系统会期望您默认使用 TLS。 您可以在此处阅读此功能 因此,如果您只通过 HTTPS 发出请求,那么您是安全的。但是,通过不同站点发出请求的应用程序呢,例如类似浏览器的应用程序。
如何在 Android 9 Pie 中启用对所有类型连接 HTTP 和 HTTPS 的请求?
原文由 Xenolion 发布,翻译遵循 CC BY-SA 4.0 许可协议
从现在的 Android 9 Pie 开始,没有加密的请求将永远无法工作。默认情况下,系统会期望您默认使用 TLS。 您可以在此处阅读此功能 因此,如果您只通过 HTTPS 发出请求,那么您是安全的。但是,通过不同站点发出请求的应用程序呢,例如类似浏览器的应用程序。
如何在 Android 9 Pie 中启用对所有类型连接 HTTP 和 HTTPS 的请求?
原文由 Xenolion 发布,翻译遵循 CC BY-SA 4.0 许可协议
完全有效的 解决方案 Android
或 React-native
面临这个问题的用户只需添加这个 android:usesCleartextTraffic="true"
中的 thisifManest -xml 文件
android:usesCleartextTraffic="true"
tools:ignore="GoogleAppIndexingWarning">
<uses-library
android:name="org.apache.http.legacy"
android:required="false" />
在 <application>
.. </application>
标签之间:
<application
android:name=".MainApplication"
android:label="@string/app_name"
android:icon="@mipmap/ic_launcher"
android:allowBackup="false"
android:theme="@style/AppTheme"
android:usesCleartextTraffic="true"
tools:ignore="GoogleAppIndexingWarning">
<uses-library
android:name="org.apache.http.legacy"
android:required="false" />
<activity
android:name=".MainActivity"
android:label="@string/app_name"/>
</application>
原文由 HarshitMadhav 发布,翻译遵循 CC BY-SA 4.0 许可协议
15 回答8.4k 阅读
8 回答6.2k 阅读
1 回答4.1k 阅读✓ 已解决
3 回答2.2k 阅读✓ 已解决
2 回答3.1k 阅读
2 回答3.8k 阅读
3 回答1.7k 阅读✓ 已解决
实现这一点的简单方法是将此属性用于您的
AndroidManifest.xml
您允许所有http
用于所有请求:但是,如果您想为不同的链接进行 更多配置,例如,允许
http
对于某些域但不允许其他域,您必须提供res/xml/networkSecurityConfig.xml
文件。要在 Android 9 Pie 中执行此操作,您必须在清单中设置一个
networkSecurityConfig
application
标签,如下所示:然后在您的
xml
文件夹中,您现在必须创建一个名为network_security_config
的文件,就像您在清单中命名它的方式一样,从那里您的文件内容应该是这样的启用所有没有加密的请求:从那里你很高兴。现在,您的应用将对所有类型的连接发出请求。有关此主题的更多信息, 请阅读此处。