文档管理中心
我的
|

HarmonyOS 6

HarmonyOS 5

【模拟器调试】鸿蒙模拟器如何配置网络代理,抓包调试 HTTP/HTTPS 请求?

问题描述

开发鸿蒙 APP 时,需要抓包调试网络请求(如 Charles、Fiddler),但模拟器默认无法通过代理,如何配置模拟器的网络代理?HTTPS 请求抓包需要哪些额外配置?如何避免证书验证失败?关键字:鸿蒙模拟器、网络代理、抓包调试、HTTPS 抓包、证书配置

点赞
收藏
1
回复
3
分享
举报
浏览436 发布于2025-12-23 08:58广东
全部评论
最多点赞
最新发布
最早发布

原理解析

鸿蒙模拟器抓包需解决两个核心问题:

  • 网络代理配置:让模拟器的网络请求通过抓包工具(如 Charles)的代理端口;
  • HTTPS 证书信任:模拟器需信任抓包工具的根证书,否则 HTTPS 请求会因证书验证失败被拦截;
  • 核心流程:配置模拟器代理→安装抓包证书→配置应用网络安全策略。

实现步骤

步骤 1:配置抓包工具(以 Charles 为例)
  1. 打开 Charles→Proxy→Proxy Settings→设置端口(如 8888),勾选 “Enable transparent HTTP proxying”;
  2. 查看电脑本地 IP(如 192.168.1.100),确保模拟器与电脑在同一网络(如同一 Wi-Fi)。
步骤 2:配置鸿蒙模拟器网络代理
  1. 启动鸿蒙模拟器→打开 “设置”→“WLAN”;
  2. 长按当前连接的 Wi-Fi→选择 “修改网络”;
  3. 勾选 “显示高级选项”→“代理” 选择 “手动”;
  4. 填写代理配置:
    • 代理服务器主机名:电脑本地 IP(如 192.168.1.100);
    • 代理服务器端口:Charles 端口(如 8888);
    • 保存配置,模拟器网络请求将通过 Charles 代理。
步骤 3:安装抓包工具根证书(解决 HTTPS 抓包)
  1. Charles 中导出根证书:Help→SSL Proxying→Save Charles Root Certificate→保存为.pem格式;
  2. 将证书文件拖入模拟器,或通过浏览器访问http://chls.pro/ssl下载证书;
  3. 模拟器中安装证书:
    • 打开 “设置”→“安全”→“凭据存储”→“安装从存储设备的证书”;
    • 选择下载的 Charles 证书→命名证书→选择 “VPN 和应用” 用途;
    • 安装完成后,模拟器信任该证书。
步骤 4:配置应用网络安全策略(避免 HTTPS 证书验证失败)

在module.json5中配置允许信任用户证书:

json5

{
  "module": {
    "metaData": {
      "customData": [
        {
          "name": "ohos.application.networkSecurityConfig",
          "value": "rawfile/network_security_config.xml"
        }
      ]
    }
  }
}

创建src/main/resources/rawfile/network_security_config.xml:

xml

<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
  <!-- 允许应用信任用户安装的证书(仅调试模式使用) -->
  <base-config>
    <trust-anchors>
      <certificates src="system" />
      <certificates src="user" /> <!-- 信任用户安装的证书 -->
    </trust-anchors>
  </base-config>
</network-security-config>
步骤 5:开启 Charles SSL 代理
  1. Charles→Proxy→SSL Proxying Settings→勾选 “Enable SSL Proxying”;
  2. 点击 “Add”→填写需要抓包的域名(如*表示所有域名)→端口填写443;
  3. 重启模拟器和应用,即可抓包 HTTPS 请求。

避坑提醒

  • 模拟器与电脑必须在同一网络,否则代理无法连接(如电脑用有线,模拟器用 Wi-Fi 需同一路由器);
  • 证书安装时需选择 “VPN 和应用” 用途,选择 “系统” 用途可能因权限不足失败;
  • 网络安全策略仅建议调试时使用,生产环境需移除certificates src="user",避免安全风险;
  • 若抓包仍失败,检查 Charles 是否开启 “Allow proxying from”(Proxy→Access Control Settings),添加模拟器 IP 或允许所有 IP。

常见问题排查

  1. 代理配置后无法上网:检查电脑防火墙是否拦截端口,或抓包工具是否正常运行;
  2. HTTPS 请求显示 “SSL Handshake Failed”:证书未安装或未配置网络安全策略;
  3. 抓不到请求:确认应用使用的是 HTTP/HTTPS 协议,且代理端口与抓包工具一致。
展开全部
2
1楼回复于2025-12-23 09:51 来自广东
  • hid77614436
    你好,请问一下open鸿蒙设备没有 长按当前连接的 Wi-Fi→选择 “修改网络”,这一步骤。怎么处理呢?
    2026-01-04 07:21 来自上海
  • FIEforever回复hid77614436
    OpenHarmony 设备的 Wi-Fi 设置逻辑和华为鸿蒙 OS 不同,没有 “长按已连接 Wi-Fi→修改网络” 的交互,而是通过 “点击已连接 Wi-Fi” 进入详情页实现修改,无屏幕设备则通过命令行工具操作
    2026-01-04 09:30 来自广东
写回答
新增插入模板功能
一键使用模板,快速填写内容,轻松发帖~
知道了
  • 为了保障您的信息安全,请勿上传您的敏感个人信息(如您的密码等信息)和您的敏感资产信息(如关键源代码、签名私钥、调试安装包、业务日志等信息),且您需自行承担由此产生的信息泄露等安全风险。
  • 如您发布的内容为转载内容,请注明内容来源。

我要提问题

了解社区公约,与您携手共创和谐专业的开发者社区。