Flutter安卓端连接Flask服务器遇SocketException连接拒绝错误求助
SocketException: Connection refused 解决方法(Flutter + Flask + 真实安卓设备)
核心问题
真实安卓设备上的127.0.0.1指向设备自身,而非运行Flask服务器的电脑,导致请求被拒绝。
解决步骤
获取电脑的局域网IP地址
- Windows:打开命令提示符,执行
ipconfig,找到对应网络适配器下的IPv4地址(如192.168.1.100) - macOS/Linux:打开终端,执行
ifconfig或ip addr,找到对应网络接口的inet地址
- Windows:打开命令提示符,执行
修改Flask服务器启动配置
启动时指定host='0.0.0.0',让服务器监听所有网络接口,允许局域网设备访问:if __name__ == '__main__': app.run(host='0.0.0.0', port=5000, debug=True)更新Flutter代码中的API地址
将http://127.0.0.1:5000/addrec替换为电脑的局域网IP,示例代码:var headers = {'Content-Type': 'application/json'}; var request = http.Request('POST', Uri.parse('http://192.168.1.100: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); }确保设备处于同一局域网
电脑和安卓设备需连接同一WiFi,或通过USB共享网络检查防火墙设置
确认电脑的5000端口未被防火墙拦截
内容的提问来源于stack exchange,提问作者Krishna prasad
相关产品推荐
相关产品推荐

