📅  最后修改于: 2023-12-03 15:17:51.218000             🧑  作者: Mango
当使用不安全的 HTTP 请求时,chrome 会发出'net: ERR_cleartext_not_permitted' 的错误。这是由于从 Android 9 以后,不允许 HTTP 请求,而只能使用 HTTPS。此外,Chrome 53 以上版本也禁止使用 HTTP 请求。
该错误通常与以下情况相关:
如果您目标网站已经可以通过 HTTPS 访问,那么这是您最好的选择。 HTTPS 是加密传输协议,将大大增加您与您的用户之间的安全性。
<application
android:usesCleartextTraffic="true">
</application>
在您的 AndroidManifest.xml 文件中,添加上述行将允许您的应用程序使用 HTTP 请求。但是,这并不安全,因此我们建议您采用第一种方法。
要使用网络安全性配置来管理哪些请求可以通过 HTTP 进行传输,只需在您的 res 目录下创建一个名为 network_security_config.xml 的文件,然后添加以下内容:
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
<base-config cleartextTrafficPermitted="false">
<trust-anchors>
<certificates src="@raw/my_cert"/>
</trust-anchors>
</base-config>
</network-security-config>
该文件将指示您的应用程序仅允许使用 HTTPS 请求,并为您的证书提供了一个安全的存储位置。
如果您的应用程序没有经过 Google Play 或不适合用于 Android Auto,那么您将需要托管您的应用程序本身。如果您希望应用程序仅用于特定设备,则可以上传到 Google Play,并将其标记为“不适合 Android Auto”。
'net: ERR_cleartext_not_permitted' 错误的出现是因为 Chrome 和 Android 9 后不允许使用 HTTP 请求。解决它的最佳方法是升级到 HTTPS,这将大大增加您与用户之间的安全性。但是,如果您确实需要使用 HTTP,请使用网络安全性配置并考虑在 AndroidManifest.xml 文件中进行设置。