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

Flutter应用Android模拟器无法连接Swagger/API问题求助

解决Flutter Android模拟器无法连接本地API的问题

第一步:验证基础网络连通性

  • 打开模拟器自带浏览器,直接访问 http://10.0.2.2:7166,确认能否加载Swagger页面:
    • 若打不开,说明是模拟器到PC的网络通路问题,和代码无关;
    • 若能打开,再排查代码中的环境变量是否生效。
  • 注意:String.fromEnvironment 读取的是编译时环境变量,如果启动Flutter时没通过 --dart-define=baseUrl=http://10.0.2.2:7166 传递参数,才会使用defaultValue。可以在代码中打印 _baseUrl 的值,确认实际使用的地址是否正确。

第二步:调整模拟器网络配置

  • 无需特意让模拟器连接WiFi,Android模拟器默认通过宿主机转发网络,但需检查:
    1. 进入模拟器设置 → 网络和互联网 → 移动网络 → 接入点名称(APN),确保代理设置为空白,避免自定义代理拦截本地请求;
    2. 重启模拟器网络:终端执行 adb shell svc wifi disable && adb shell svc wifi enable,或直接重启模拟器。

第三步:检查API服务的绑定范围

  • 若API仅绑定 localhost 或 127.0.0.1,模拟器的 10.0.2.2 无法访问,需将API绑定到所有网卡:
    • ASP.NET Core项目:修改launchSettings.json的applicationUrl为 http://0.0.0.0:7166;https://0.0.0.0:7167;
    • 命令行启动API:执行 dotnet run --urls=http://0.0.0.0:7166。

第四步:代码与证书排查

  • 若API使用自签名HTTPS证书,代码中 badCertificateCallback = true 的设置是必要的,但需确保请求协议和API一致(HTTP/HTTPS不能混着用);
  • 打印 fullUrl 的值,确认拼接后的请求地址无格式错误(比如多斜杠、端口错误)。

兜底排查方案

  • 无需直接重装模拟器,先尝试创建新模拟器(比如更换Android版本为API 33),排除当前模拟器的配置异常;
  • 检查PC防火墙,确认未拦截7166端口的入站TCP请求,可手动添加允许规则。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 12:25:15