You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flutter连接本地ASP.NET Core Web API超时,求解决方案

Flutter连接本地ASP.NET Core Web API超时问题排查与解决

可能的原因

  • HTTPS证书未被信任:本地ASP.NET Core默认使用自签名HTTPS证书,移动设备/模拟器会拦截此类请求,导致超时或连接失败。
  • ASP.NET Core服务未监听局域网IP:服务仅绑定localhost,未开放到局域网,外部设备无法访问。
  • 防火墙拦截端口:电脑防火墙阻止了7040端口的入站请求。
  • 网络环境不一致:设备与电脑不在同一Wi-Fi,或Wi-Fi开启客户端隔离模式。
  • 模拟器IP映射规则未遵循:Android/iOS模拟器对localhost有特殊映射,直接用电脑IP可能无法正常访问。

可行解决办法

1. 处理HTTPS证书问题

  • 临时改用HTTP调试(仅开发环境):
    1. 修改ASP.NET Core项目的launchSettings.json,将applicationUrl改为http://0.0.0.0:7040。
    2. Flutter代码中把请求URL改为http://192.168.156.1:7040/api/Employees/GetAllEmployees/2。
    3. 安卓端需在android/app/src/main/AndroidManifest.xml的<application>标签添加android:usesCleartextTraffic="true",允许明文HTTP请求。
  • 安装信任自签名证书:
    1. 找到ASP.NET Core证书(路径:%USERPROFILE%\.aspnet\https),复制到设备。
    2. 安卓:在系统设置-安全-加密与凭据-从存储安装,选择证书并信任。
    3. iOS:模拟器中访问服务地址后,在设置-通用-关于本机-证书信任设置中启用该证书。

2. 让ASP.NET Core服务监听局域网IP

  • 修改launchSettings.json的applicationUrl为http://0.0.0.0:7040;https://0.0.0.0:7040(0.0.0.0表示监听所有可用IP)。
  • 或启动服务时指定参数:dotnet run --urls=http://0.0.0.0:7040。

3. 开放防火墙端口

  • 打开Windows Defender防火墙高级设置,新建入站规则:
    1. 选择“端口”,输入7040,协议选TCP。
    2. 选择“允许连接”,应用到所有网络类型。
    3. 命名规则并保存。

4. 统一网络环境

  • 确保设备(或模拟器)与电脑连接同一Wi-Fi,关闭Wi-Fi的客户端隔离模式(可通过路由器设置调整)。
  • 若Wi-Fi有问题,可尝试用手机热点连接电脑和设备测试。

5. 利用模拟器专用映射IP

  • Android模拟器:用10.0.2.2代替电脑局域网IP,这是模拟器映射到电脑localhost的专用地址,请求URL改为http://10.0.2.2:7040/api/...。
  • iOS模拟器:直接使用localhost即可,因为iOS模拟器与电脑共享网络栈,无需额外IP转换。

前置测试建议

先在手机浏览器中访问http://192.168.156.1:7040/api/Employees/GetAllEmployees/2,如果能正常返回JSON数据,说明服务端和网络没问题,再排查Flutter代码端的配置;如果浏览器也无法访问,优先解决服务端或网络问题。

内容的提问来源于stack exchange,提问作者curious student

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 07:45:20