React Native打包的Android应用无法向自有服务端发送请求求助
排查思路与解决方案
1. 安卓高版本明文HTTP限制排查
如果你的服务端请求地址使用HTTP协议而非HTTPS,Android 9(API 28)及以上系统默认禁止明文HTTP请求,会直接拦截导致报错,第三方服务端一般默认支持HTTPS所以请求正常。
解决方法:
- 测试环境临时放开:打开
android/app/src/main/AndroidManifest.xml,在<application>标签添加属性android:usesCleartextTraffic="true" - 生产环境必须给服务端配置正规CA签发的HTTPS证书,不要使用上述配置
2. HTTPS证书有效性排查
如果你的服务端已经使用HTTPS,检查证书是否符合安卓系统信任规则:
- 自签名证书、过期证书、非正规CA签发的证书都会被安卓系统默认拦截
- 可先用测试设备的系统浏览器直接访问你的服务端接口地址,若弹出证书风险提示即可确认是该问题
- 临时测试可在Axios配置中添加忽略证书校验逻辑,生产环境必须替换为合规HTTPS证书
3. 网络连通性排查
- 若你的服务端部署在本地局域网,确认测试安卓设备和服务端在同一网络下,请求地址不要填
localhost/127.0.0.1,需填写部署服务端的设备的局域网IP(如192.168.3.45) - 用测试设备浏览器直接访问完整的服务端接口地址,若无法正常获取返回,说明网络层面不通,先解决防火墙/安全组/IP白名单限制问题
4. 请求配置排查
- 打印请求的完整URL、请求头、参数到日志,确认和浏览器端发起的请求完全一致
- 捕获错误时打印完整错误信息:
console.log(error.response, error.request),若error.response为空,说明请求未到达服务端,属于网络/证书/域名解析类问题
内容的提问来源于stack exchange,提问作者oboualla
相关产品推荐
相关产品推荐

