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/