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

模拟器请求本地ASP.NET服务器API失败:换IP仍报Network Request failed

解决模拟器访问本地ASP.NET服务器的Network Request Failed问题

我之前调试跨设备访问本地API时也踩过类似的坑,给你梳理几个必查的点,按顺序排查应该能解决:

  • 先确认ASP.NET服务器的监听范围
    默认情况下,很多ASP.NET项目只绑定到localhost(也就是127.0.0.1),这时候只有本机能访问,模拟器根本连不上。你得把服务器改成监听局域网IP或者所有地址:

    • 如果是ASP.NET Core,直接在Program.cs里改启动地址:
      app.Run("http://0.0.0.0:54372");
      
    • 或者去launchSettings.json里修改applicationUrl,同时保留本地和局域网访问:
      "applicationUrl": "http://你的本地IP:54372;http://localhost:54372"
      
  • 检查端口和防火墙
    先打开命令提示符跑netstat -ano | findstr :54372,确认54372端口确实被你的ASP.NET进程占用(如果是其他进程,要么换端口要么杀掉占用的)。然后临时关闭电脑的防火墙试试——如果关闭后能访问,就给54372端口添加入站允许规则,别一直关着防火墙。

  • 确保模拟器和电脑在同一网段
    模拟器的网络模式要选“桥接”或者“共享主机网络”,不然它和你的电脑不在一个局域网里,肯定连不上。你可以先在模拟器里打开浏览器,直接输入http://你的本地IP:54372/api/...测试,如果浏览器都拿不到数据,那问题肯定不在你的前端代码里。

  • 别漏了CORS配置
    模拟器的请求属于跨域请求,如果ASP.NET服务器没开CORS,会直接拒绝响应。给服务器加个CORS配置:

    • ASP.NET Core的话,先在Program.cs里注册服务:
      builder.Services.AddCors(options =>
      {
          options.AddPolicy("AllowSimulator", policy =>
          {
              policy.AllowAnyOrigin()
                    .AllowAnyMethod()
                    .AllowAnyHeader();
          });
      });
      

    然后启用中间件:

    app.UseCors("AllowSimulator");
    

    注意要把UseCors放在UseRouting和UseAuthorization之间,不然可能不生效。

  • 试试模拟器的特殊映射地址
    比如Android Studio的模拟器有个专属地址10.0.2.2,这个地址会直接映射到主机的localhost,你可以把fetch里的IP换成这个试试:

    componentDidMount() { 
      fetch('http://10.0.2.2:54372/api/...')
      // ... 其他代码
    }
    

    这个小技巧有时候能绕开一堆网络配置问题。

先从这些点查起,应该很快能找到问题所在。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 10:00:11