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

React-Native v0.41仅HTTPS请求报错Network Request Failed求助

解决React Native 0.41中HTTPS请求报“Network Request Failed”的问题

这个问题我在RN 0.4x版本开发时踩过几乎一模一样的坑——HTTP请求正常、在线工具能通,但RN里HTTPS就报网络失败,结合你的错误栈(底层XMLHttpRequest报错),给你几个针对性的排查和解决方向:

1. 优先排查SSL证书兼容性问题

RN 0.41的网络底层(基于原生XMLHttpRequest)对SSL证书的兼容性很差,尤其是两种常见情况:

  • 证书缺少中间证书链:在线API测试工具会自动补全中间链,但RN的原生网络层不会,直接导致证书验证失败
  • 服务器启用了RN 0.41不支持的TLS协议:这个版本的RN底层仅支持到TLS 1.2,要是服务器强制启用TLS 1.3就会直接报错

解决办法:

  • 让后端检查并配置完整的证书链(可以用SSL检测工具确认证书链完整性)
  • 临时让后端降级TLS协议到1.2,验证是否能正常请求

2. 开发环境临时绕过SSL验证(仅开发用!)

如果是开发阶段急需调试,可以临时关闭RN的SSL证书验证,但绝对不能用于生产环境:

iOS端

可以用第三方库react-native-fetch-blob替代原生fetch,它支持忽略SSL错误:

// 用react-native-fetch-blob发送请求
RNFetchBlob.config({
  trusty: true // 忽略SSL证书验证
}).fetch('GET', url + '/api/v2/login?' + param)
.then(res => res.json())
.catch(err => console.log(err.message))

Android端

修改android/app/src/main/AndroidManifest.xml,同时自定义OkHttpClient添加信任所有证书的拦截器:

<!-- 在application标签内添加 -->
android:usesCleartextTraffic="true"

核心是创建一个自定义OkHttpClient,添加信任所有证书的SSLSocketFactory,替换RN默认的网络客户端(具体代码可参考RN官方网络配置文档)

3. 长远解决方案:升级React Native版本

RN 0.41是2017年的老版本,网络层存在大量已知bug,后续的0.50+版本对HTTPS证书处理、TLS支持都做了大幅优化。虽然跨版本升级会有一定工作量,但从根本上解决这类遗留问题的话,升级是最优选择。

4. 检查设备系统时间

这个细节很容易被忽略:如果测试设备的系统时间和实际时间偏差过大(比如差几个月以上),会触发SSL证书的有效期验证失败,进而导致“Network Request Failed”。可以先把设备时间调回正确值再测试。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 03:23:39