【问题标题】:Flutter SocketException: Failed host lookup: 'xxxxxx.local'Flutter SocketException:主机查找失败:'xxxxxx.local'
【发布时间】:2021-03-06 06:17:49
【问题描述】:

我的局域网中有一个主机名为“xxx.local”的树莓派。我的手机已连接到 wifi,但每次我尝试使用 '.local' 地址从我的 REST 后端获取数据时,都会出现此异常:

'SocketException (SocketException: Failed host lookup: 'xxx.local' (OS Error: No address associated with hostname, errno = 7))'

但是当我尝试通过 ssh 连接到它时,甚至当我尝试使用邮递员获取数据时,它都可以正常工作。

是否可能与移动数据有关,因为我的测试手机里面没有 SIM 卡,所以它被停用了。如果可以,没有sim卡可以工作吗?

我尝试获取数据的代码:

static Future<List<Device>> fetchDevices() async {
final response = await http.get('http://test-hub.local:9080/devices');

if (response.statusCode == 200) {
  final data = json.decode(response.body);
  print(data);
  List<Device> responses =
      data.map<Device>((j) => Device.fromJson(j)).toList();
  print(responses);
  return responses;
} else {
  throw Exception(
      'Failed to load Devices: ${response.statusCode} [${response.reasonPhrase}]');
}
}

【问题讨论】:

  • 请提供一些与您的连接相关的代码。
  • 你到底是什么意思?飞镖休息电话? @Akif
  • 向我们展示您的代码。使用代码编辑您的问题。
  • 我添加了代码。 @Akif
  • 我遇到了类似的问题,还没有找到解决办法。

标签: flutter dart


【解决方案1】:

我在这个问题上卡了很长时间,问题是Android currently does not support mdns lookups (.local)

我不知道你是如何获得你的 mdns 地址的,但是对于使用multicast_dns 包的人,你可以按照here 的描述来获取 IP 地址。然后您可以使用 IP 地址进行 http 查询

【讨论】:

    猜你喜欢
    • 2022-01-23
    • 2021-11-14
    • 2021-04-19
    • 2020-03-08
    • 2019-11-09
    • 2020-04-10
    • 2011-06-01
    • 2022-10-16
    • 2021-08-31
    相关资源
    最近更新 更多