尽管添加了 android:usesCleartextTraffic 和 android:networkSecurityConfig,但不允许明文 HTTP 流量

Posted

技术标签:

【中文标题】尽管添加了 android:usesCleartextTraffic 和 android:networkSecurityConfig,但不允许明文 HTTP 流量【英文标题】:Cleartext HTTP traffic is not permitted inspite of adding android:usesCleartextTraffic and android:networkSecurityConfig 【发布时间】:2020-01-08 02:09:40 【问题描述】:

因此,正如他的标题所读,尽管在 android 清单文件和网络配置安全文件中添加了所有必要的更改,但 volley 仍在抛出“不允许明文 http 流量”的错误。我正在 android studio 中制作我的项目,希望能得到一些帮助。我也尝试过清理项目,重建它并使缓存失效。没有任何效果。

清单文件:(无法显示包名)

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:dist="http://schemas.android.com/apk/distribution"
    xmlns:tools="http://schemas.android.com/tools"
    package="">

    <uses-permission android:name="android.permission.INTERNET"/>

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/AppTheme"
        android:usesCleartextTraffic="true"
        android:networkSecurityConfig="@xml/network_security_config"
        tools:replace="android:networkSecurityConfig">
        <activity android:name=".SplashScreen"
                  android:theme="@style/SplashTheme">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity android:name=".VerifyOtp" />
        <activity android:name=".MainActivity">
        </activity>
    </application>

    <dist:module dist:instant="true" />

</manifest>

【问题讨论】:

【参考方案1】:

如果您的 Url 是“https://example.com”,则只需添加 example.com 和您希望允许访问的其他 url,如下所示

<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
    <domain-config cleartextTrafficPermitted="true">
        <domain includeSubdomains="true">example.com</domain>
        <domain includeSubdomains="true">example1.com</domain>
    </domain-config>
    <base-config cleartextTrafficPermitted="false" />
</network-security-config>

【讨论】:

也试过这个。一点运气都没有。 网络配置: 127.0.0.1</domain> 刚刚添加了两个供您检查 能否请您删除此行并尝试 .tools:replace="android:networkSecurityConfig" 我不认为我跟随。我在那里添加了一行来指示新的安全规则。要我删除它吗??

以上是关于尽管添加了 android:usesCleartextTraffic 和 android:networkSecurityConfig,但不允许明文 HTTP 流量的主要内容,如果未能解决你的问题,请参考以下文章

尽管只添加了一个指令,但多个指令错误

尽管向 ModelState 添加了消息,但 Html.ValidationMessage 为空

尽管添加了 android:usesCleartextTraffic 和 android:networkSecurityConfig,但不允许明文 HTTP 流量

C:尽管添加了 `-ldl` 标志,但未定义对 `dlopen`/`dlsym` 的引用

尽管从 Firebase 添加了项目,但 ArrayList 的大小仍然为零

Swift:尽管添加了元素,但 UIStackView 的高度始终为 0