我使用的是真实设备(不是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());
}
}
答案 0 :(得分:1)
答案 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:
方法2: