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

React Native安卓端HTTPS请求失败返回NETWORK_ERROR问题求助

核心原因定位

该问题的本质是RN 0.64版本默认使用的Android网络栈对SSL证书的校验规则比Postman更严格,Postman默认会放松自签名证书、证书链不完整、弱加密算法、域名不匹配等场景的校验规则,因此会出现Postman请求正常但RN端全链路请求HTTPS接口返回NETWORK_ERROR的情况。你测试公共HTTPS接口请求正常,也能佐证问题出在自有服务端证书配置不符合Android系统校验规则,而非RN网络框架本身的问题。

优先排查的3类证书问题

  • 证书链不完整:自有HTTPS服务端可能仅部署了站点证书,未附带中间CA证书,浏览器、Postman会自动补全主流的中间证书,但Android网络栈不会,校验直接失败。可通过命令openssl s_client -connect my.api.url:443 -showcerts检测,若返回的Certificate chain部分只有1段,即可判定为证书链不完整,需要在服务端补上完整的证书链配置。
  • 证书使用了不受信任的加密算法:如果证书采用SHA1、MD5这类过时算法签名,或RSA密钥长度不足2048位,Android 7及以上系统会默认不信任该证书,Postman不会拦截这类问题。
  • 域名匹配校验失败:如果证书绑定的域名和实际请求的域名不一致,或使用IP地址、未备案的内部域名,RN默认的域名校验会直接失败,Postman可手动跳过该校验因此能正常请求。

验证方案(仅用于测试,生产环境不可用)

可通过临时放宽Android网络安全配置确认是否为证书问题:

  1. 打开android/app/src/main/AndroidManifest.xml,在application节点下添加配置:android:networkSecurityConfig="@xml/network_security_config"
  2. 新建android/app/src/main/res/xml/network_security_config.xml文件,添加如下内容(将my.api.url替换为实际接口域名):
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
    <domain-config cleartextTrafficPermitted="true">
        <domain includeSubdomains="true">my.api.url</domain>
        <trust-anchors>
            <certificates src="system" />
            <certificates src="user" />
        </trust-anchors>
    </domain-config>
</network-security-config>

修改后重新打包运行,若HTTPS请求恢复正常,即可100%确认是证书校验问题,针对性修复服务端证书配置即可。

额外排查点

RN 0.64版本默认依赖的OkHttp版本为3.x,部分旧版本OkHttp对SNI的支持存在缺陷,如果你的服务端是多域名共用同一个IP的HTTPS服务,也可能出现证书获取错误,可手动升级OkHttp依赖到4.x版本修复。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 19:09:01