SocketException:拒绝连接(操作系统错误:拒绝连接,错误号=111),地址=127.0.0.1,端口=44



在我的flutter应用程序中,我使用烧瓶服务器进行测试。我启动了我的服务器并在我的flutter应用程序中运行API url。但是SocketException:拒绝连接(操作系统错误:拒绝连接,错误号=111(,地址=127.0.0.1,端口=44164。显示错误。

var headers = {'Content-Type': 'application/json'};
var request =
http.Request('POST', Uri.parse('http://127.0.0.1:5000/addrec'));
request.body = json.encode({
"name": UploadedName,
"grade": Uploadedgrade,
"loaction": Uploadedlocation,
"like": Uploadedlike,
"admission": Uploadedadmission,
"comments": Uploadedcomments,
"entery_time": UploadeddataentryTime
});
request.headers.addAll(headers);
http.StreamedResponse response = await request.send();
if (response.statusCode == 200) {
print(await response.stream.bytesToString());
} else {
print(response.reasonPhrase);
}

我正在使用实际的android设备来运行应用程序。

发生这种情况是因为设备上的localhost(或127.0.0.1(只能由设备本身访问。

解决方案1

您可以在命令提示符下将localhost端口反向代理到运行adb reverse的Android设备/模拟器,如下所示:

adb reverse tcp:5000 tcp:5000

解决方案2

使用运行API的计算机的IP地址。此外,API应该监听IP0.0.0.0,以便可以在本地主机外部访问。

假设API机器的IP是192.168.1.123,它将类似于:

Uri.parse('http://192.168.1.123:5000/addrec')

请注意,因为将API更改为侦听0.0.0.0是一个安全风险,因为API将可供外部世界访问。

使用动态ip 0.0.0.0的python服务器还有另一种方法:端口

你可以只使用linux外壳

ipconfig

或windows是

ifconfig

获取您的个人电脑IP地址并访问端口

然后你使用

ipaddress:端口

最新更新