1***@qq.com
1***@qq.com
  • 发布:2026-06-05 16:34
  • 更新:2026-06-05 16:35
  • 阅读:35

【BUG】 使用 uni.request 封装请求真机运行出现 errCode: 602001

分类:uts

在h5和小程序运行没有问题,但是真机运行就出现这个问题,使用的uniappx+uts
//‍[⁠uts.sdk.modules.DCloudUniNetwork.RequestFailImpl⁠]‍
{
"errCode":
//‍[number]‍
602001,
"cause":
//‍[⁠io.dcloud.uniapp.SourceError⁠]‍
{
"code":
//‍[number]‍
0,
"subject": null,
"cause": null,
"message": "android.system.GaiException: android_getaddrinfo failed: EAI_NODATA (No address associated with hostname)",
"name": "Error"
},
"data": null,
"errMsg": "request system error",
"errSubject": "uni-request",
"message": "",
"name": "Error"
}

2026-06-05 16:34 负责人:无 分享
已邀请:
Ask小助手

Ask小助手 - Ask社区AI助手

欢迎到专业群( uni-app x技术交流群 ) 咨询,群中有相关专业的管理员和群友。

根据你提供的错误信息,这个 602001 错误的核心原因是 DNS 解析失败,真机无法将你的请求域名解析为 IP 地址。

错误信息中的关键提示是:

android.system.GaiException: android_getaddrinfo failed: EAI_NODATA (No address associated with hostname)

本助手使用国产模型,生成代码准确率较低。强烈建议使用uni-agent生成代码

这意味着请求的 URL 中的 hostname 在真机网络环境下无法被解析。结合 H5 和小程序正常、真机异常的现象,通常有以下几种原因:


1. 使用了本地/内网地址(最常见的原因)

如果你在请求中使用了 localhost127.0.0.1192.168.x.x 这类内网地址,Android 真机会直接报这个错,因为真机无法访问你电脑上的本地服务。

解决方法:

  • 确保手机和开发电脑在同一个局域网下。
  • 将请求地址改为电脑的局域网 IP(例如 192.168.1.100),而不是 localhost
  • 或者使用内网穿透工具(如 ngrok)将本地服务映射到一个公网域名。
  • 如果是全栈开发者使用本地环境接口,建议部署到公网测试环境进行真机调试。社区中有开发者反馈:“本地环境的接口是会报这个错的,换成公网的接口就行了”。

2. HTTPS 证书问题

如果你的接口是 HTTPS 的,且证书是自签名的或不被 Android 系统信任,也可能触发此错误。不过通常这会伴随 Trust anchor for certification path not found 的提示,你当前的错误中没有,所以可能性较低。

解决方法:

  • 如果是自签名证书,可以在 uni.request 中尝试设置 sslVerify: false(仅限调试阶段,正式环境需配置有效证书)。

3. 真机网络权限或网络环境问题

  • 检查真机是否连接了网络(WiFi 或移动数据)。
  • 检查真机是否开启了 VPN 或代理,可能会干扰 DNS 解析。社区 ISSUE 中有类似反馈:“开了 vpn 导致访问不到服务器”。
  • 确认 Android 原生层已正确配置网络权限和网络安全策略。如果你是通过原生 Android Studio 集成 uni-app x 资源的方式运行,需要确保主工程和模块中已正确添加 uni-network-release.aarcom.squareup.okhttp3:okhttp:3.12.12 等依赖,具体可参考 Android 原生集成文档

4. 使用了 TCP 原生插件导致冲突

社区中有开发者反馈,使用 TCP 原生插件连接 socket 后,再调用 uni.request 会触发 602001 错误。如果你项目中使用了此类插件,可尝试暂时移除排查。


5. 摇树优化导致 request 模块未被打包

如果你在自定义基座或本地打包时,代码中没有直接出现过 uni.request 的调用(例如通过动态导入或封装在条件分支中),打包工具可能会因摇树优化而移除 request 模块。确保在代码中有明确的 uni.request 调用,以保证模块被正确打包。


建议排查步骤

  1. 确认请求 URL:在真机浏览器中直接访问该接口地址,看是否能正常返回数据。如果不能,说明是网络可达性问题。
  2. 检查网络环境:关闭 VPN/代理,确保手机和服务器在同一网络或服务器有公网访问能力。
  3. 尝试公网接口:用一个公开的测试接口(如 https://httpbin.org/get)替换你的接口,看是否还报 602001。如果公网接口正常,则确认是你的服务端网络可达性问题。
  4. 检查原生集成配置:如果你是通过 Android Studio 集成的方式运行,请严格对照 官方文档 检查依赖和配置。

如果以上方法仍无法解决,建议提供一个最小复现工程到 uni-app x ISSUE 系统,以便官方团队进一步分析。

内容为 AI 生成,仅供参考

要回复问题请先登录注册