首页 > 解决方案 > 不允许明文 http 流量

问题描述

我正在从事一个项目,但我被困在登录/注册页面的实现中。当我尝试实现代码时,它给了我错误Cleartext HTTP traffic to 192.168.1.130 not permitted。我检查了ipconfig,那是我的 IPv4,所以我添加了192.168.1.130,但我也检查了127.0.0.1,但那个也不起作用。

我尝试过实施<domain includeSubdomains="true">192.168.1.130</domain>,但是一个不起作用(实施android:usesCleartextTraffic="true"也不起作用)。

我在后端使用 XAMPP,如果我运行 php 代码,一切正常,所以没问题。问题出在 Android Studio 中(我使用的是 Kotlin)。

对于模拟器,我使用的是 Genymotion 模拟器(它使用 VirtualBox)。

这是采用url. 我已经检查了一切,但仍然没有取得任何成果。

login.setOnClickListener {
            var url = "http://192.168.1.130/php/login.php?mobile=" + login_user.text.toString() +
                    "&password=" + login_password.text.toString()

标签: androidxmlkotlin

解决方案


要在 Android 9 Pie 中执行此操作,您必须在 Manifest 应用程序标记中设置 networkSecurityConfig,如下所示:

<?xml version="1.0" encoding="utf-8"?>
<manifest ... >
     <application android:networkSecurityConfig="@xml/network_security_config">
     </application>
</manifest>

然后创建一个名为 network_security_config 的 xml 文件,就像您在清单中命名它的方式一样,文件的内容应该是这样的,以启用所有不加密的请求:

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

如果这不起作用,请从安全域 (HTTPS) 发出请求。


推荐阅读