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

React Native调用.NET Core 7 API遇Axios Network Error求助

React Native调用.NET Core API出现Network Error的排查与解决建议

一、本地网络访问适配

  • 别直接用localhost:React Native模拟器/真机没法直接访问电脑的localhost。Android Studio模拟器换10.0.2.2,iOS模拟器可以用localhost或者电脑局域网IP;如果是真机,必须用电脑的局域网IP(比如192.168.x.x),同时保证手机和电脑连同一WiFi。
  • 确认API端口:检查.NET Core启动日志,确保服务确实监听7262端口,日志会显示类似Now listening on: https://localhost:7262的内容。

二、HTTPS与跨域问题处理

1. HTTPS证书信任

  • React Native默认不信任自签名HTTPS证书,开发阶段可以临时禁用SSL验证(仅开发用,生产别这么搞):在Axios请求里加httpsAgent: new https.Agent({ rejectUnauthorized: false }),或者直接改用HTTP调试。
  • 也可以给模拟器/真机安装.NET Core开发证书:Windows执行dotnet dev-certs https --trust,Mac执行sudo security add-trusted-cert -d -r trustRoot -k /Library/Keychains/System.keychain ~/.aspnet/https/aspnetapp.pfx(替换成你的实际证书路径)。

2. CORS配置验证

  • 确认.NET Core的Program.cs里配置了CORS,允许React Native的请求:
    builder.Services.AddCors(options =>
    {
        options.AddPolicy("AllowAll", policy =>
        {
            policy.AllowAnyOrigin()
                  .AllowAnyMethod()
                  .AllowAnyHeader();
        });
    });
    
    app.UseCors("AllowAll");
    
    注意这段代码要放在UseRouting之后、UseAuthorization之前。

三、Axios配置检查

  • 核对fetchApi.js里的baseURL:比如Android模拟器要写成https://10.0.2.2:7262/api,真机用电脑局域网IP。
  • 排查请求拦截器或请求头:有没有加不必要的Authorization头导致请求被拦截,先写最简请求测试排除干扰:
    import axios from 'axios';
    import https from 'https';
    
    const agent = new https.Agent({ rejectUnauthorized: false });
    
    const testApi = async () => {
      try {
        const response = await axios.get('https://10.0.2.2:7262/api/products', { httpsAgent: agent });
        console.log(response.data);
      } catch (err) {
        console.error(err);
      }
    };
    

四、环境与依赖校验

  • 检查.env文件的API_URL:有没有拼写错误,比如多写斜杠、端口不对。
  • 确认Package.json的axios版本:尽量用稳定版本(比如1.6.0以上),避免版本兼容问题。

五、API控制器路由检查

  • 查看ProductsController.cs的路由配置:确保前缀正确,比如:
    [ApiController]
    [Route("api/[controller]")] // 对应api/products路由
    public class ProductsController : ControllerBase
    {
        [HttpGet]
        public IActionResult GetProducts()
        {
            // 业务代码
            return Ok(new List<Product>());
        }
    }
    
  • 用Postman直接调用https://localhost:7262/api/products,确认API本身能正常返回数据,排除服务端问题。

六、调试日志排查

  • 用console.log打印Axios实际请求的URL,确认地址是否正确。
  • 打开React Native调试工具的Network面板,查看请求的详细错误(比如连接超时、证书错误、404等)。
  • Android用adb logcat看系统网络日志,iOS用Xcode控制台查网络错误详情。

内容的提问来源于stack exchange,提问作者Ahmed Tayyib Kaya

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 12:31:09