Flutter打包APK后无法连接本地ASP Web API问题求助
排查Flutter Release版无法连接本地ASP Web API的问题
- 别用localhost/127.0.0.1当API地址
模拟器的localhost指向自身,但手机的localhost是手机本机,打包后必须改成服务器的局域网IP地址(比如192.168.1.100),端口保持和API一致。这是最容易踩的坑。 - 确认ASP Web API的绑定范围
打开API的Program.cs或配置文件,确保Kestrel监听的是0.0.0.0或局域网IP,而非仅127.0.0.1。示例代码:
这样局域网内的设备才能访问到API。builder.WebHost.ConfigureKestrel(serverOptions => { serverOptions.ListenAnyIP(5000); // 允许所有IP访问5000端口 }); - 检查防火墙设置
服务器端防火墙要开放API的端口(比如5000、7000),允许局域网入站连接;手机端如果有安全软件或防火墙,暂时关闭排除拦截可能。 - 验证手机与服务器的网络连通性
在手机上用工具ping服务器的局域网IP,如果ping不通,说明不在同一网段或路由器有隔离规则,先解决网络连通问题。 - 确认Flutter的网络权限
检查AndroidManifest.xml是否添加了必要权限:
Release版不会自动添加这些权限,手动添加后重新打包。<uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> - 抓包定位请求状态
用Charles或Wireshark抓取手机的网络请求,查看请求是否发出、是超时还是返回错误码,精准定位问题环节。 - 处理HTTPS证书问题(如果用了HTTPS)
本地自签证书在Release版会被手机拒绝,可暂时改用HTTP测试,或给手机安装信任证书,也可在Flutter里临时忽略证书验证(仅测试用,上线禁用):HttpClient client = HttpClient() ..badCertificateCallback = ((X509Certificate cert, String host, int port) => true);
内容的提问来源于stack exchange,提问作者Денис Волчек
相关产品推荐
相关产品推荐

