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

React Native安卓端使用Axios/Fetch请求HTTPS接口报Network Error问题咨询

问题解决方案

1. 修正请求头错误

你当前axios请求的头配置存在两处不符合规范的问题,安卓OkHttp对HTTP头校验比iOS严格,会直接拒绝非法请求:

  • 头字段名错误:ContentType 需改为标准的 Content-Type
  • 头值大小写错误:application/JSON 需改为小写的 application/json
    修正后的请求头代码:
headers: {
  'Content-Type': 'application/json',
  Accept: 'application/json',
}

2. 检查基础网络权限配置

确认android/app/src/main/AndroidManifest.xml中已添加网络权限:

<uses-permission android:name="android.permission.INTERNET" />

3. 修正自定义OkHttpClient的超时配置

你当前自定义OkHttp时将三个超时时间都设为0,部分OkHttp版本会将0判定为非法值直接触发超时错误,改为合理的超时时长即可:

OkHttpClient.Builder client = new OkHttpClient.Builder().connectionSpecs(specs)
        .connectTimeout(30, TimeUnit.SECONDS)
        .readTimeout(30, TimeUnit.SECONDS)
        .writeTimeout(30, TimeUnit.SECONDS)
        .cookieJar(new ReactCookieJarContainer());

4. 排查SSL证书问题

如果上述修改后仍报错,大概率是接口SSL证书存在安卓端不兼容问题:

  • 优先确认接口证书链完整,可通过SSL检测工具校验,缺少中级证书的话需在服务端补全证书链
  • 临时调试可添加信任所有证书的配置排查证书问题,该配置禁止用于生产环境

5. 输出完整错误信息定位问题

修改catch块的日志输出,获取更详细的错误信息:

catch (error) {
  console.log('错误信息:', error.message);
  console.log('错误响应:', error.response);
  console.log('请求实例:', error.request);
}
  • 如果error.request存在但error.response不存在,说明请求已发出但未收到服务器响应,需排查服务器网络、防火墙配置
  • 如果error.response存在,说明服务器返回了非2xx状态码,按响应里的状态码排查业务逻辑问题

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.17 20:54:04