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

Android调用本地.NET Core API时出现Axios网络超时错误求助

解决React Native调用.NET Core API超时问题
  • 检查.NET Core后端的监听地址
    默认情况下,.NET Core可能只绑定localhost,导致模拟器/真机无法访问。修改配置让后端监听所有IP:

    • 对于.NET 6+,修改Program.cs:
      var builder = WebApplication.CreateBuilder(args);
      // 其他服务配置...
      var app = builder.Build();
      // 让后端监听所有IP的5004端口
      app.Run("http://0.0.0.0:5004");
      
    • 或者修改launchSettings.json里的applicationUrl:
      "profiles": {
        "http": {
          "commandName": "Project",
          "dotnetRunMessages": true,
          "launchBrowser": true,
          "applicationUrl": "http://0.0.0.0:5004",
          "environmentVariables": {
            "ASPNETCORE_ENVIRONMENT": "Development"
          }
        }
      }
      
  • 确认网络环境匹配

    • Android模拟器用10.0.2.2映射宿主机,但要确保电脑防火墙/杀毒软件没拦截5004端口。
    • 用真机测试的话,必须替换成电脑的局域网IP(比如192.168.1.100:5004),且真机和电脑连同一个WiFi。
  • 调整Axios超时时间
    默认Axios超时可能太短,手动设置更长时长,同时打印更详细的错误信息:

    export const addNewMember = async (newMember: Member) => {
      Alert.alert('10');
      try {
        const response = await axios.post(
          'http://10.0.2.2:5004/Members',
          newMember,
          {
            headers: {
              'content-type': 'application/json',
            },
            timeout: 10000 // 设置10秒超时
          }
        );
        Alert.alert('2');
        return response.data;
      } catch (error) {
        Alert.alert('3');
        // 打印更具体的错误内容,方便排查
        console.error(error.response?.data || error.message || error);
        throw error;
      }
    };
    
  • 开启.NET Core日志排查请求
    在appsettings.Development.json中开启详细日志,确认后端是否收到请求:

    "Logging": {
      "LogLevel": {
        "Default": "Information",
        "Microsoft.AspNetCore": "Debug"
      }
    }
    

    启动后端后查看控制台日志,检查有没有来自React Native的请求记录。

  • 确认CORS配置正确
    虽然Postman能正常调用,但React Native属于跨域请求,确保.NET Core已配置CORS:

    var builder = WebApplication.CreateBuilder(args);
    // 添加CORS服务
    builder.Services.AddCors(options =>
    {
      options.AddPolicy("AllowAll", policy =>
      {
        policy.AllowAnyOrigin()
              .AllowAnyMethod()
              .AllowAnyHeader();
      });
    });
    var app = builder.Build();
    // 必须在路由中间件之前使用CORS
    app.UseCors("AllowAll");
    // 其他中间件和路由配置...
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 06:30:58