I / flutter(30720):SocketException:操作系统错误:连接超时,errno = 110,地址= 192.19.170.13,端口= 47763

时间:2020-02-10 17:54:58

标签: mongodb api http flutter socketexception

我使用的是真实设备(不是Android模拟器) 后端: MongoDb Atlas , API: strapi-beta ,出现此错误: I / flutter(30720):SocketException:操作系统错误:连接超时,errno = 110,地址= 192.19.170.13,端口= 47763 (发现了很多类似的问题,但都没有使用真实的设备进行测试)

    try {
      var ip = '192.19.170.13';
      setState(() => _isSubmitting = true);
      http.Response response =
          await http.post('http://$ip:1337/auth/local/register',
 /* I've also tried using localhost(it didn't work) everyone suggested to use my loopback adapter's (Ethernet's ip address) even that isn't working.*/
 body: {
        'username': _username,
        'email': _email,
        'password': _password,
      });

      final responseData = json.decode(response.body);
      setState(() => _isSubmitting = false);
      _successSnackBar();
      print(responseData);
    } catch (e) {
      setState(() => _isSubmitting = false);
      print(e.toString());
    }
  }

5 个答案:

答案 0 :(得分:1)

如果您使用的是 Chrome,则需要转到

chrome://inspect/#devices

并像这样将您的端口添加到“端口转发”

enter image description here

并确保您的设备上有 USB 调试功能。

答案 1 :(得分:1)

好吧,如果您使用本地服务器进行测试并且您使用的是 Windows。该错误可能是由于 Windows 防火墙造成的。您可以禁用防火墙,它应该可以工作或向防火墙添加规则以允许 tcp 访问上述端口。

答案 2 :(得分:0)

我在模拟器上遇到了同样的问题,而我遇到问题的原因是IP。

是否可以在不使用flutter应用程序的情况下检查是否已连接到设备中的该IP?

我的问题是尝试使用127.0.0.1连接到主机localhost,并找到此页面: https://developer.android.com/studio/run/emulator-networking

答案 3 :(得分:0)

我的Android设备也有同样的问题。即IP地址链接在Localhost中可以正常工作,但在物理设备上则不能工作。

因此,我发现要在物理设备(Android设备)上使用您的IP地址链接,您必须需要在WAN网络上托管您的网站(主要是WebAPI的网站)才能访问您的IP地址链接。

因此,答案是将您的网站(主要是WebAPI的网站)托管在WAN网络上。

答案 4 :(得分:0)

方法1:

  1. 安装apache2
  2. 安装curl
  3. 访问www并使用www.IP地址固定

方法2:

  1. 将路由器NAT设置配置为本地IP地址。
    现在,您可以使用您的Internet IP地址。