Android(9)Pie中如何允许所有网络连接类型HTTP和HTTPS?

新手上路,请多包涵

从现在的 Android 9 Pie 开始,没有加密的请求将永远无法工作。默认情况下,系统会期望您默认使用 TLS。 您可以在此处阅读此功能 因此,如果您只通过 HTTPS 发出请求,那么您是安全的。但是,通过不同站点发出请求的应用程序呢,例如类似浏览器的应用程序。

如何在 Android 9 Pie 中启用对所有类型连接 HTTP 和 HTTPS 的请求?

原文由 Xenolion 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 497
2 个回答

实现这一点的简单方法是将此属性用于您的 AndroidManifest.xml 您允许所有 http 用于所有请求:

 <application android:usesCleartextTraffic="true">
</application>

但是,如果您想为不同的链接进行 更多配置,例如,允许 http 对于某些域但不允许其他域,您必须提供 res/xml/networkSecurityConfig.xml 文件。

要在 Android 9 Pie 中执行此操作,您必须在清单中设置一个 networkSecurityConfig application 标签,如下所示:

 <?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>

从那里你很高兴。现在,您的应用将对所有类型的连接发出请求。有关此主题的更多信息, 请阅读此处

原文由 Xenolion 发布,翻译遵循 CC BY-SA 4.0 许可协议

完全有效的 解决方案 AndroidReact-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 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题