【问题标题】:Xiaomi does not connect ws, other mobile phones yes小米不连接ws,其他手机是的
【发布时间】:2020-07-10 12:27:59
【问题描述】:

我在使用我的小米 Mi 9 SE 开发的 APP 中遇到问题,而我的其他(旧)手机(如 BQ M5 或某些三星)没有。

我的 APP 连接到 Web 服务以获取一些信息。我有 3 个环境用于此 Web 服务:测试(在本地 LAN 中的 PC 中)、预生产和生产。

测试:“http://10.60.8.223:8080/ws/webservice.wsdl”; (小米不连接,其他的可以)

PRE:“https://ws-pre.myaplication.com/ws/webservice.wsdl”; (所有连接正确)

PRO:“https://ws-pro.myaplication.com/ws/webservice.wsdl”; (所有连接正确)

使用任何其他手机我连接到 3 个环境,但使用小米我无法连接到我正在调试 Web 服务的 TEST url。

你知道发生了什么吗? 我可以尝试什么? 也许小米屏蔽了http连接但承认了https?

提前非常感谢您。 阿德里安。

【问题讨论】:

  • 调用api的时候log出现什么错误?
  • D/Login: java.io.IOException: 不允许到 10.60.8.223 的明文 HTTP 流量
  • 关于错误消息,我可以看到小米限制安全并且只允许 https,您可以尝试使用免费服务,如ngrok.com 将您的 localhost HTTP 隧道连接到 Web 可访问的 https

标签: java android web-services connection xiaomi


【解决方案1】:

我已经解决了:

在 RES 文件夹中创建一个名为 network_security_config.xml 的 xml 文件。

<?xml version="1.0" encoding="utf-8"?>
<network-security-config xmlns:android="http://schemas.android.com/apk/res/android">
    <base-config cleartextTrafficPermitted="true">
        <trust-anchors>
            <certificates src="system" />
        </trust-anchors>
    </base-config>
</network-security-config>

在 Android Manifest 中,在应用程序标签内:

<application
    ...
    android:networkSecurityConfig="@xml/network_security_config">

【讨论】:

    【解决方案2】:

    你也可以这样做。

    <?xml version="1.0" encoding="utf-8"?>
    <manifest ...>
        <uses-permission android:name="android.permission.INTERNET" />
        <application
            ...
            android:usesCleartextTraffic="true"
            ...>
            ...
        </application>
    </manifest>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-05-27
      • 1970-01-01
      • 1970-01-01
      • 2020-08-05
      • 2016-03-25
      相关资源
      最近更新 更多