微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

无法从本地 Web 服务器获取颤振中的数据

如何解决无法从本地 Web 服务器获取颤振中的数据

我正在尝试从运行在 http://localhost:5050 上的 Web 服务器获取数据并打印它。起初它给了我一个 Socket Exception,所以我查了一下,看起来你应该用你计算机的 IP 地址替换“localhost”,所以我这样做了,现在当我获取它时,它似乎只是。 .. 卡住?我在请求后有一个打印语句,但它不打印任何内容,没有错误,没有输出......什么都没有。我正在使用物理设备,这是我的代码

class AllFlights extends StatefulWidget {
  const AllFlights({Key? key}) : super(key: key);

  @override
  _AllFlightsstate createState() => _AllFlightsstate();
}

class _AllFlightsstate extends State<AllFlights> {

  Future<void> getAllFlights() async {
    try {
      log("here");
      final res = await http.get(Uri.parse("http://192.168.8.100:5050/iflive/atc")); //fetch data -- gets stuck here
      log(res.body); // "log" statement,imported from dart:developer

    } catch (e) {
      log(e.toString());
    }
  }

  @override
  void initState() {
    super.initState();
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: ElevatedButton(child: Text("All Flights",),onpressed: getAllFlights,);
  }
}

注意:如果重要的话,Web 服务器在 Docker 容器中运行,端口 5050 映射到主机上的端口 5050。

编辑:我刚刚注意到在调用 api 后 2-3 分钟,它给了我一个套接字异常:[log] SocketException: OS Error: Connection timed out,errno = 110,address = 10.0.2.2,port = 44046

这正常吗?

解决方法

更新:我可以通过使用 adb (Android Debug Bridge) 解决这个问题。

adb reverse tcp:5050 tcp:5050

此命令将您手机在 5050 端口上的请求路由到您计算机的 5050 端口。现在您可以直接向 localhost 发出请求,而不是在您计算机的 IP 上。第一个端口参数是您手机的端口,第二个是您计算机的端口。

示例:adb reverse tcp:5000 tcp:5050 会将手机上的端口 5000 映射到计算机上的 5050。

祝大家有个美好的一天!

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?