json - 10.0.2.2 可以在我的 Android 模拟器中运行,但不能在我的 Flutter 物理设备中运行

标签 json flutter localhost flutter-layout flutter-test

Future getSearchData() async {
    var srch = {'Search': query};
    var data =
        await http.post("http://10.0.2.2/DBCON/searchspec.php", body: srch);
    var databody = jsonDecode(data.body);
    return databody;
  }

我正在尝试从本地主机获取数据并在我的 flutter 应用程序中打印它,问题是它在 Android 模拟器中运行良好,但在我的物理设备中不起作用,你能告诉我该怎么做吗为了让它在我的物理设备上工作?

最佳答案

10.0.2.2是 PC 中 localhost 的特殊别名,这意味着您的模拟器可以通过此特殊地址访问系统本地托管的 API。模拟器本身不具备网络功能,这就是制定此规定的原因。

但是,您的物理设备没有任何此类手段。

您需要通过网络网关(通常是无线路由器)提供的内部 IPv4 地址连接到您的系统。使用ipconfig/ifconfig/ip addr获取。

这要求两个设备位于同一网络中。获得后,使用该地址而不是 10.0.2.2

Here's one answer它采用了这个解决方案(尽管没有推理)

关于json - 10.0.2.2 可以在我的 Android 模拟器中运行,但不能在我的 Flutter 物理设备中运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64372349/

相关文章:

json - 将 For 循环与 JSON 结合使用

flutter - 在Flutter中是否可以在同一窗口小部件中显示图像和视频,是否有共同的窗口小部件?

php - 从本地主机发送电子邮件

android - 如何在 flutter 的角落添加图像?

flutter - 如何在不单击按钮的情况下在 flutter 中显示警报对话框

css - 如何使 CSS URL 背景图像显示在本地主机中?

php - 运行 php3 本地主机

java - Android Studio 解析 JSON 对象不起作用

javascript - 无法读取未定义的属性 'Drivers'

json - 我可以使用 MarshalJSON 将任意字段添加到 golang 中的 json 编码吗?