【问题标题】:Flutter http / rest server not accessible from outside Android无法从 Android 外部访问 Flutter http / rest 服务器
【发布时间】:2021-12-24 09:35:42
【问题描述】:

我正在处理一个需要在 Android 设备和计算机之间进行通信的项目。为了启动这两个设备之间的连接,我认为使用具有以下架构的 Rest API 机制:

我目前的颤振 sn-p 看起来像:

Jaguar server = Jaguar(port: 8080);
server.get("/", (context) => 'Hello');
await server.serve();

当直接在我的 Android 设备上从网络浏览器访问“localhost:8080”时,我收到“Hello”消息,但是当我尝试从我的计算机(位于同一网络上)做同样的事情时,我得到超时错误(在“192.168.0.10:8080”上)。

似乎我的颤振(或我的设备)没有将网络服务器暴露给我的网络的其余部分,但我不知道为什么..你有什么想法吗?

【问题讨论】:

  • 您如何尝试从您的计算机浏览器中准确访问服务器?
  • 通过尝试到达“192.168.0.10:8080”
  • 你的 Jaguar 服务器绑定到 localhost/127.0.0.1 了吗?
  • 检查你的安卓设备的防火墙设置,8080端口应该是开放的,可以通过TCP协议处理传入的请求。
  • @blackapps 我的服务器绑定在 0.0.0.0(默认值)

标签: android flutter rest http server


【解决方案1】:

过了一会儿,我找到了解决办法。这是因为从 API 28 开始,Android 屏蔽了明文流量。

要解决这个问题,我们必须重写android:usesCleartextTraffic="true"like

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-22
    • 1970-01-01
    • 2020-09-16
    • 2021-06-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-22
    相关资源
    最近更新 更多