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

React Native安卓端fetch请求JSON数据功能突然失效该如何排查?

React Native fetch抛出「network request failed」排查思路
  • 先排查基础网络环境
    先确认测试设备/模拟器的网络是否正常,是否开了代理、VPN,或者系统防火墙限制了应用联网权限。可以先在设备浏览器直接访问你的请求地址,比如示例中的https://reqres.in/api/products/3,确认可以正常拿到返回,排除域名本身无法访问的问题。
  • 检查HTTPS证书/域名配置合规性
    最新的iOS和Android系统都对HTTPS证书有严格校验:
    • Android 9及以上默认禁用明文HTTP请求,如果你的实际请求地址是HTTP,需要在AndroidManifest.xml中配置android:usesCleartextTraffic="true",或者改用HTTPS
    • iOS 14及以上的ATS安全策略会拦截不符合要求的HTTPS请求,比如证书过期、自签名证书、TLS版本低于1.2的请求,需要确认服务端证书合规,或者临时在Info.plist中配置ATS例外规则
  • 检查依赖/运行环境变更
    如果你近期升级了React Native版本、更换了打包工具、修改了原生层配置,会影响fetch的默认实现:
    • 0.60以上版本的React Native已经移除了自带的网络请求核心库依赖,部分场景需要手动引入whatwg-fetch polyfill
    • 检查是否有其他原生插件修改了全局的网络拦截逻辑,比如埋点插件、代理调试插件会篡改请求路径或者拦截请求
  • 补全代码异常捕获逻辑定位问题
    你贴出的示例代码缺少异常捕获分支,补全catch分支后可以拿到更具体的报错信息辅助定位:
    var array = [];
    fetch('https://reqres.in/api/products/3')
      .then((response) => {
        if(!response.ok) throw new Error(`请求错误: ${response.status}`)
        return response.json()
      })
      .then((json) => { array = json; })
      .then(() => { console.log("get Remote data DONE" + array); })
      .catch(err => console.log("请求异常详情:", err))
    
  • 排查服务端侧限制
    确认服务端是否新增了跨域限制、UA校验、IP访问频率限制,或者CORS配置被修改,React Native的fetch请求会自带特定的UA标识,可能被服务端安全策略拦截。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 21:45:01