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

如何将React Native Expo应用连接到本地运行的ASP .NET Core后端API?

解决Expo应用连接本地.NET Core API的问题

一、先验证请求是否真的未到达服务器

  • 给你的get-all-users接口加日志输出,直接看控制台是否有反馈:
    [HttpGet("get-all-users")]
    public IActionResult GetAllUsers()
    {
        Console.WriteLine("接口已收到请求");
        // 原有业务逻辑...
    }
    
    运行API后触发Expo的请求,若控制台没打印这条日志,说明请求确实没到服务器;反之则问题出在响应处理环节。
  • 用Postman直接访问http://你的电脑局域网IP:5225/LoLCaller/get-all-users,如果Postman也无法获取响应,优先排查API本身的可访问性。

二、.NET Core API的关键配置

  1. 开启跨域(CORS)支持
    Expo应用属于跨域请求,必须在API中配置CORS:

    • 在Program.cs添加CORS服务:
      builder.Services.AddCors(options =>
      {
          options.AddPolicy("AllowExpo", policy =>
              policy.AllowAnyOrigin() // 开发环境可临时用这个,生产环境需限制具体域名
                    .AllowAnyMethod()
                    .AllowAnyHeader());
      });
      
    • 在中间件链中启用CORS(注意顺序要在UseRouting之后、UseAuthorization之前):
      app.UseCors("AllowExpo");
      
  2. 绑定局域网IP地址
    默认.NET Core可能仅绑定localhost,导致其他设备无法访问:

    • 方法一:修改Properties/launchSettings.json,在applicationUrl中添加你的电脑局域网IP:
      "applicationUrl": "http://localhost:5225;http://192.168.x.x:5225"
      
    • 方法二:用命令行启动API时指定绑定所有IP:
      dotnet run --urls=http://0.0.0.0:5225
      
      0.0.0.0表示绑定所有可用网络接口,同一局域网的设备就能访问API。
  3. 放行Windows防火墙端口
    Windows防火墙可能拦截了5225端口的外部请求:

    • 打开「Windows Defender防火墙」→「高级设置」
    • 新建入站规则:允许TCP协议的5225端口通过,应用到域、专用、公网(开发环境可全选)

三、Expo端的注意事项

  • 确保请求地址中的localhost已替换为电脑的局域网IP(如192.168.1.100),不要用127.0.0.1
  • 开发环境优先用HTTP测试,HTTPS需要处理Expo对自签名证书的信任问题,会增加排查复杂度
  • 确认Expo设备(手机/模拟器)和电脑处于同一WiFi网络,不要用移动数据

四、快速排查流程

  1. 用Postman验证API的局域网IP地址可正常访问
  2. 检查API是否配置了CORS并绑定了正确IP
  3. 确认Windows防火墙已放行5225端口
  4. 核对Expo的请求地址是否正确

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 09:26:12