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

求助:如何让物理安卓设备访问本地.NET Core API(附故障场景与配置信息)

求助:如何让物理安卓设备访问本地.NET Core API(附故障场景与配置信息)

问题场景

我最近遇到个棘手的问题:用.NET Core搭了个本地API,配套的Flutter应用在安卓模拟器上调用这个API完全正常,但把APK装到物理安卓设备上之后,就死活连不上API了,试了好几种方法都没解决,来求各位大佬支招!

我的.NET Core项目launchSettings.json里的相关配置如下:

"http.DevelopmentForEmulator": {
  "commandName": "Project",
  "dotnetRunMessages": true,
  "launchBrowser": false,
  "launchUrl": "swagger",
  "applicationUrl": "http://0.0.0.0:5046",
  "environmentVariables": {
    "ASPNETCORE_ENVIRONMENT": "Production"
  }
}

实用解决步骤

  • 确认设备与电脑在同一局域网:物理安卓设备和运行API的电脑必须连接同一个WiFi(如果电脑用有线,得确保有线网络和WiFi属于同一局域网),这是能互相访问的基础前提!
  • 替换API请求地址为电脑局域网IP:模拟器里的localhost或10.0.2.2能映射到本地,但物理设备不支持,一定要把Flutter代码里的API地址改成电脑的局域网IPv4地址(比如http://192.168.1.105:5046)。查询方法:Windows开命令提示符输入ipconfig,找对应网卡的IPv4地址;Mac/Linux在终端输入ip addr或ifconfig即可。
  • 给API端口放行防火墙:Windows Defender防火墙或第三方防火墙大概率会拦截物理设备的请求,需要手动添加入站规则,允许TCP协议的5046端口通过;也可以临时关闭防火墙测试(测试完成后记得重新开启,保障电脑安全)。
  • 验证API的启动配置是否正确:你配置里的0.0.0.0是正确的(代表监听所有网卡的请求),但要确保启动API时用的是http.DevelopmentForEmulator这个配置项,启动后可以查看控制台输出,确认监听地址确实是http://0.0.0.0:5046。
  • 关闭路由器的客户端隔离功能:部分路由器默认开启「AP隔离」或「客户端隔离」,会阻止同一WiFi下的设备互相访问,需要进入路由器管理后台(通常是192.168.1.1或192.168.0.1),找到该功能并关闭。

内容来源于stack exchange

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.08 09:18:07