React Native安卓真机访问Spring REST API遇Axios网络错误求助
React Native安卓真机访问Spring REST API网络错误排查方案
现状说明
- 安卓模拟器通过
10.0.2.2能正常访问Spring API,但真机替换为服务器局域网IP后仍报错「AxiosError: Network Error」 - 已完成配置:
- AndroidManifest.xml的application标签添加了
android:usesCleartextTraffic="true" - 声明了
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />权限 - 手机与服务器处于同一局域网
- AndroidManifest.xml的application标签添加了
排查与解决步骤
修正API请求地址
你的代码中仍使用模拟器专属地址https://10.0.2.2:8080/...,真机必须替换为服务器所在设备的局域网IP。同时注意:- 若Spring服务器未配置HTTPS证书,必须将
https改为http(无证书的HTTPS请求会被安卓真机拦截) - 示例修正后地址:
http://192.168.1.105:8080/api/authentication/login(替换为你的实际服务器IP)
- 若Spring服务器未配置HTTPS证书,必须将
验证服务器网络连通性
- 在安卓真机的浏览器中直接访问
http://服务器IP:8080,确认能正常打开Spring Boot默认页面或API接口,排除网络链路问题 - 关闭服务器设备的防火墙,或在防火墙规则中放行8080端口
- 在安卓真机的浏览器中直接访问
补充必要的安卓权限
除现有权限外,必须添加互联网访问权限,否则真机无法发起网络请求:<uses-permission android:name="android.permission.INTERNET" />排查HTTPS证书问题
若坚持使用HTTPS:- 确保Spring服务器配置了有效的SSL证书
- 若使用自签名证书,需将证书安装到安卓真机的系统信任区
打印详细错误信息定位问题
修改catch代码,输出更具体的错误细节,便于精准定位:catch (error) { console.error('Error code:', error.code); console.error('Error message:', error.message); console.error('Response data:', error.response?.data); console.error('Request details:', error.request); }确认手机网络环境
检查手机是否连接到与服务器相同的WiFi网络,避免使用移动数据或其他局域网
内容的提问来源于stack exchange,提问作者Nikolina Stojčić
相关产品推荐
相关产品推荐

