明文HTTP流量不允许

时间:2019-02-22 00:03:54

标签: android xml kotlin

我在一个项目中工作,并且无法执行登录/注册页面。当我尝试实现代码时,它给我错误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()

3 个答案:

答案 0 :(得分:3)

将此添加到清单中

Object.notifyAll()

像这样。

android:usesCleartextTraffic="true"

答案 1 :(得分:2)

要在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)发出请求。

答案 2 :(得分:0)

最近我在android 9 pie上也遇到了同样的问题。

我在清单中添加了

android:usesCleartextTraffic="true"
tools:ignore="UnusedAttribute"

提到第二行是忽略小于23的SDK警告。