React Native中Android端出现AxiosError: Network Error,iOS端正常
React Native Android端AxiosError: Network Error 排查与解决
针对你遇到的Android端Axios请求失败但iOS和Postman正常的问题,结合你的React Native 0.68.2和Axios 1.3.4版本,可按以下步骤排查解决:
1. 确认Android网络权限
检查android/app/src/main/AndroidManifest.xml文件,确保已添加网络权限:
<uses-permission android:name="android.permission.INTERNET" />
React Native 0.68+默认会包含该权限,但如果手动修改过清单文件可能被误删。
2. 配置Android网络安全策略
Android对HTTPS域名的证书验证机制较严格,若目标服务器证书存在信任问题,会导致请求失败。可通过网络安全配置文件放行目标域名:
- 在
android/app/src/main/res/xml目录下创建network_security_config.xml文件,内容如下:<?xml version="1.0" encoding="utf-8"?> <network-security-config> <domain-config cleartextTrafficPermitted="false"> <domain includeSubdomains="true">helpdesk.plymouthplace.us</domain> </domain-config> </network-security-config> - 在
AndroidManifest.xml的<application>标签中添加配置引用:<application ... android:networkSecurityConfig="@xml/network_security_config">
3. 优化Axios请求配置
避免手动拼接URL可能导致的错误,改用Axios实例的baseURL配置:
const axiosInstance = axios.create({ baseURL: "https://helpdesk.plymouthplace.us", }); axiosInstance.get("/api/v1/helpdesk/url", { params: { url: "https://helpdesk.plymouthplace.us" } }) .then(response => console.log('response--', response.data)) .catch(error => console.log('error--', error));
4. 排查网络环境问题
- 关闭Android模拟器或设备的代理设置,代理可能拦截HTTPS请求导致失败
- 确保设备和Postman处于同一网络环境,避免网络路由差异
5. 降级Axios版本适配RN0.68
Axios 1.3.x部分版本与React Native 0.68存在兼容性问题,尝试降级至稳定兼容版本:
npm install axios@0.27.2 # 或 yarn add axios@0.27.2
6. 启用Axios调试日志
添加请求/响应拦截器,查看完整请求细节以定位问题:
// 请求拦截器 axios.interceptors.request.use(request => { console.log('Request Details:', request); return request; }); // 响应拦截器 axios.interceptors.response.use( response => { console.log('Response Details:', response); return response; }, error => { console.log('Error Full Info:', error.message, error.request, error.response); return Promise.reject(error); } );
内容的提问来源于stack exchange,提问作者Deepak Sharma
相关产品推荐
相关产品推荐

