欢迎光临
我们一直在努力

DevEco Studio 仿真器无法发送网络请求

最近发现很多新手同学刚接触鸿蒙时,都会遇到仿真器能上网,但应用里就是发不出请求的问题。

其实这个问题真的不复杂,90% 的情况都是下面 4 个原因导致的,按顺序排查一遍,基本都能解决,不用搞那些复杂的抓包、改系统配置。


第一步:加网络权限

这个是最常见的问题,鸿蒙应用默认没有联网权限,所有请求都会被系统直接拦截,连个报错都不会有。

解决方法: 打开 entry/src/main/module.json5 文件,在 module 节点里加上这段:

"requestPermissions": [
{
"name": "ohos.permission.INTERNET"
}
]

最重要的一步:加完权限后,必须先关闭仿真器,再重新运行应用,不然权限不会生效。


第二步:解决 HTTP 请求被拦截

从 HarmonyOS 4.0 开始,系统默认禁止所有 HTTP 明文请求,只允许 HTTPS。所以如果你用的是本地测试接口(比如 http://localhost:3000),会直接失败。

表现:访问百度等 HTTPS 网站正常,自己的 HTTP 接口报错。

解决方法: 还是在 module.json5 的 module 节点里,加上安全配置:

"security": {
"network": {
"cleartextTrafficPermitted": true
}
}

提示:生产环境一定要删掉这段,强制用 HTTPS。


第三步:本地后端别用localhost

很多人用电脑跑后端服务,然后在仿真器里写 http://localhost:3000 去访问,这里也会出现问题。

因为仿真器是一个独立的虚拟机,它的 localhost 指向的是自己,不是你的电脑。

解决方法: 把 localhost 换成 10.0.2.2,这是仿真器专门用来访问电脑主机的地址。

// 错误写法
const url = 'http://localhost:3000/api/user';

// 正确写法
const url = 'http://10.0.2.2:3000/api/user';

另外,确保你的后端服务是绑定在 0.0.0.0 上的,而不是 127.0.0.1,不然外部设备还是访问不了。


第四步:检查仿真器本身的网络

如果上面三步都做了还是不行,先确认仿真器真的能上网:

  • 打开仿真器里的浏览器
  • 输入 www.baidu.com 看能不能打开
    • 如果浏览器也打不开:重启仿真器,关掉电脑上的代理和 VPN,基本就能好
    • 如果浏览器能打开,只有你的应用不行:回到第一步重新检查权限和配置

    快速验证流程

  • 先在应用里请求 https://www.baidu.com → 成功:网络和权限没问题
  • 再请求你的 HTTPS 线上接口 → 成功:证书没问题
  • 最后请求本地 HTTP 接口 → 用 10.0.2.2 替换 localhost

  • 避坑总结

  • 加完权限一定要重启仿真器!
  • 本地后端访问用 10.0.2.2,不是 localhost
  • HTTP 请求需要加明文允许配置
  • 先测浏览器能不能上网,排除仿真器本身的问题
  • 这四点就能解决绝大多数仿真器网络问题。

    赞(0)
    未经允许不得转载:171主机测评 » DevEco Studio 仿真器无法发送网络请求
    分享到: 更多 (0)

    评论 抢沙发

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址