React Native安卓模拟器调用API出现AxiosError: Network Error问题求助
React Native安卓模拟器调用专属API出现Network Error的解决办法
检查API域名的模拟器可达性
先在安卓模拟器自带的浏览器中直接访问https://uhbvn.eeslsmartmeter.in/api/users/homePageData,如果无法加载,说明模拟器的网络解析或连接有问题:- 尝试切换模拟器的网络模式(比如从Wi-Fi切换到模拟移动数据)
- 手动将模拟器DNS设置为
8.8.8.8或1.1.1.1
排查API服务器的IP白名单限制
专属API通常会设置IP白名单,只允许指定IP段访问。真实设备的公网IP可能在白名单内,但模拟器使用的是电脑的网络IP,可能未被授权。联系后端运维人员确认是否限制了模拟器所在的IP范围。检查本地代理与模拟器代理配置
如果你的开发电脑开启了代理工具,模拟器可能未同步代理设置,导致无法访问专属API:- 先关闭本地代理工具,重新测试API调用
- 若需要代理,在模拟器的网络设置中配置与电脑一致的代理地址和端口
验证API的SSL证书兼容性
部分安卓模拟器对SSL证书的校验比真实设备更严格,若API使用自签名证书或证书链不完整,会触发网络错误:
可通过安卓网络安全配置临时调试(仅用于开发阶段,上线前需移除):- 在
android/app/src/main/res/xml目录下创建network_security_config.xml文件,内容如下:<?xml version="1.0" encoding="utf-8"?> <network-security-config> <domain-config cleartextTrafficPermitted="true"> <domain includeSubdomains="true">uhbvn.eeslsmartmeter.in</domain> </domain-config> </network-security-config> - 在
android/app/src/main/AndroidManifest.xml的application标签中添加配置:android:networkSecurityConfig="@xml/network_security_config"
- 在
确认请求参数与头信息一致性
虽然代码中用fetch调用,但你提到AxiosError,需确保模拟器的请求头、参数和真实设备完全一致。比如部分API会校验User-Agent、Authorization等字段,模拟器的默认请求头可能与真实设备不同,导致被拒绝。
内容的提问来源于stack exchange,提问作者Rahul Sarma
相关产品推荐
相关产品推荐

