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

React Native调用ASP.NET API时持续返回网络错误求助

React Native (Expo iOS) 调用 ASP.NET API 报 "Network request failed" 解决方案

1. 替换 localhost 为电脑局域网IP,同时让API监听所有地址

iOS真机上的localhost指向设备自身,而非你的开发电脑,必须使用电脑的局域网IP(可通过ipconfig/ifconfig查询)。另外ASP.NET默认仅监听localhost,外部设备无法访问,需修改配置:

  • 打开项目的Properties/launchSettings.json,将applicationUrl修改为:
"applicationUrl": "https://0.0.0.0:7287;http://0.0.0.0:5287"
  • 重启API服务,先在手机Safari中访问https://你的电脑IP:7287/get,确认能返回"test"再继续调试。

2. 解决iOS不信任自签名HTTPS证书问题

开发环境的ASP.NET使用自签名证书,iOS真机默认会拒绝信任这类证书,直接导致请求失败:

  • 方案一:安装并信任证书
    1. 电脑浏览器打开https://localhost:7287,从地址栏的锁图标中导出证书。
    2. 通过AirDrop或邮件将证书发送到iOS手机,点击安装后,进入「设置」→「通用」→「VPN与设备管理」,手动信任该证书。
  • 方案二:开发阶段临时启用HTTP
    嫌证书配置麻烦可改用HTTP,需两步操作:
    1. 注释ASP.NET代码中的//app.UseHttpsRedirection();,确保API能响应HTTP请求。
    2. 修改Expo项目的app.json,添加iOS网络权限配置:
    "ios": {
      "infoPlist": {
        "NSAppTransportSecurity": {
          "NSAllowsArbitraryLoads": true
        }
      }
    }
    
    1. 将React Native的fetch URL改为http://你的电脑IP:5287/get。

3. 检查网络与防火墙设置

  • 确保手机和开发电脑连接同一WiFi网络,否则无法建立局域网连接。
  • 临时关闭电脑防火墙测试,若能正常访问,再去防火墙中添加7287/5287端口的入站放行规则。

4. 修正fetch请求的细节问题

你的API返回的是纯字符串"test",使用res.json()会解析报错,需改用res.text();同时路径尽量与接口定义保持一致(ASP.NET路由不区分大小写,但避免不必要的问题):

let getEmployees = () => {
    fetch("https://你的电脑IP:7287/Get")
      .then((res) => {
        console.log(res.status);
        return res.text(); // 用text()解析纯字符串返回值
      })
      .then(
        (result) => {
          console.log(result);
        },
        (error) => {
          console.log(error);
        }
      );
};

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 12:25:24