Flutter桌面应用无法连接localhost:8080的问题求助
Flutter桌面应用连接localhost:8080被拒绝的解决方案
排查步骤与修复方案
1. 验证后端服务状态
- 先确认后端服务确实在
localhost:8080运行:- Windows执行命令:
netstat -ano | findstr :8080,查看是否有进程监听8080端口 - macOS/Linux执行命令:
lsof -i :8080
- Windows执行命令:
- 用Postman或浏览器测试接口:发送POST请求到
http://localhost:8080/HongLeong/LOGIN_REQUEST.do,携带UserName和Password参数,确认服务能正常响应。如果浏览器都访问不了,先修复后端服务问题。
2. 替换localhost为本地IPv4地址
Flutter桌面应用可能存在localhost解析异常(比如优先IPv6,但后端只监听IPv4),直接使用本地IPv4地址替代:
- 查看本地IP:
- Windows:
ipconfig→ 找到当前网络的IPv4地址(如192.168.1.105) - macOS/Linux:
ip addr或ifconfig→ 找到对应网卡的inet地址
- Windows:
- 修改代码中的
apiUrl:
apiUrl: 'http://192.168.1.105:8080/HongLeong/LOGIN_REQUEST.do',
3. 检查防火墙/安全软件拦截
- 本地防火墙可能阻止Flutter应用访问8080端口:将Flutter的可执行文件(或整个项目的输出目录)加入防火墙白名单,或临时关闭防火墙测试。
- 杀毒软件、安全工具也可能拦截网络请求,暂时禁用后重试。
4. 调整后端服务监听地址
确保后端服务不是仅监听127.0.0.1,而是监听所有网卡(0.0.0.0),这样才能接收来自桌面应用的请求:
- 比如Spring Boot项目,在
application.properties中添加:server.address=0.0.0.0 - 其他后端框架参考对应配置,将监听地址设为
0.0.0.0
5. 确认Flutter桌面环境配置
- 确保已启用对应平台的桌面支持:
- Windows:
flutter config --enable-windows-desktop - macOS:
flutter config --enable-macos-desktop - Linux:
flutter config --enable-linux-desktop
- Windows:
- 桌面端Flutter默认允许网络请求,无需额外权限配置,但如果使用第三方网络库,确认该库支持桌面平台。
内容的提问来源于stack exchange,提问作者JoshuaaMarkk
相关产品推荐
相关产品推荐

