DevEco Studio有类似Android Studio的App Inspection网络抓包工具吗?

DevEco Studio有类似Android Studio的App Inspection网络抓包工具吗?

3 回复

开发者您好,当前DevEco Studio未提供抓包能力,您可以参考如何使用Charles工具抓包进行网络抓包。

【背景知识】

Charles是一款用于网络调试和分析的代理工具,可以拦截和查看设备与服务器之间的网络通信。通过Charles,可以监视应用程序的网络流量、修改请求和响应,甚至模拟不同的网络条件。其主要功能包括:

  • 截取http和https网络封包。
  • 支持重发网络请求,方便后端调试。
  • 支持修改网络请求参数。
  • 支持网络请求的截获并动态修改。
  • 支持模拟慢速网络。

【解决方案】

详细使用流程请参考:如何使用Charles工具抓包。 避免重复,以下是整体简略流程:

1.安装Charles

2.设备代理设置:

(1).查看Charles的IP地址,一般与PC主机的IP地址保持一致。

(2).设置Charles侧的调试端口号。

(3).Charles证书下载。

3.证书安装。

4.网络请求过滤。

说明: 配置环境时,需要在电脑Charles弹出的窗口选择Allow,才能够跟手机连接。 不支持crt格式证书安装,需要转换为pem格式。

【常见FAQ】

Q:无法下载证书。

A:手机链接的wifi先删除此网络,再在连接网络时就设置代理,重新开始操作,可能是网络连接后再去改代理配置不生效。

Q:已经安装证书,但是还是抓不到https报文。

A:参照使用Charles抓包,调试axios网络请求进行代码配置,添加证书路径: 1.将证书文件推送到系统CA证书路径: D:\Program Files>hdc file send Charles.pem /etc/ssl/certs 2.代码配置:

// 发送一个get请求,使用代理,并使用CA根证书
axios<string, AxiosResponse<string>, null>({
  method: "get",
  url: 'https://developer.huawei.com/consumer/cn',
  caPath: '/etc/ssl/certs/Charles.pem',
})

Q:ohos.request支持抓包吗?

A:ohos.request不支持忽略证书校验,无法信任抓包工具(如Fiddler/Charles)生成的CA证书,不支持抓包。可使用以下方式代替: 1.RCP支持忽略证书校验,可主动信任抓包工具的证书,支持抓包。 2.axios和鸿蒙原生的http模块功能相似,可以使用三方库ohos/axios支持抓包。

Q:使用Charles工具抓包时无法导入系统根证书到手机,怎么处理?

A:解决方法如下: 1.配置环境时,在Charles弹出的窗口中选择Allow,以确保与手机连接。 2.不支持安装crt格式证书,需转换为pem格式。转换步骤为在Charles的"Help"菜单中选择"SSL Proxying"-> “Save Charles Root Certificate…”,然后选择保存类型为pem格式。

Q:HarmonyOS如何设置网络代理抓包? A:可以使用Charles工具抓包,设置代理和取消代理需要先删除网络,重新连接wifi时设置代理才会生效。 Q:按照官网如何使用Charles工具抓包没有成功可以有哪些排查方向? A:可以按照以下步骤排查一下:

1.检查证书配置:确保在设备上正确安装了Charles的SSL证书。

2.检查网络配置:确保应用正确配置了SSL/TLS连接,包括证书和证书链的路径。

3.更新证书:检查一下证书是否已过期或即将过期,如果过期或者即将过期,需要更新证书。

4.手动添加信任。

  • 在设备上打开设置。
  • 进入“隐私和安全”设置。
  • 找到“信任的凭证”或“CA证书”部分。
  • 添加Charles的自签名证书为受信任的CA。

5.尝试重启设备和Charles试一下。

Q:为何抓包提示Charles证书有问题?

A:Charles抓包需要绑定ip到物理网卡,在Charles顶部菜单“Help”->"Local IP Address"查看IP地址,如果proxy是virtual 字样说明是虚拟网卡,可以尝试关闭。

Q:Mac上使用Charles抓包工具时不能在手机上安装证书,导致无法解析抓包后的https内容。

A:一、导出证书,点击 Help—>SSL Proxying—>Save Charles Root Certificate(如charles_20231127.pem)

(1)导入证书到手机执行命令参考如下: hdc file send charles.pem(pc上证书路径) /storage/media/100/local/files/Download(工程机指定路径)

(2)连接工程机后执行命令启动证书安装界面 hdc shell aa start -a MainAbility -b com.ohos.certmanager

(3) 选择从存储设备安装,选择指定pem证书

二、安装Charles证书到系统可信目录,操作步骤: 点击 Help—>SSL Proxying—>Install Charles Root Certificate—>安装证书—>选择证书存储路径为:受信任的根证书颁发机构

三、设置代理操作步骤:

1)点击 Proxy—>SSL Proxy Settings—>在Include添加 : 和 *:443

2)点击 Proxy—>Proxy Settings—>勾选Enable transparent HTTP proxying

四、Wifi代理设置: 将手机与PC同一局域网下连接,手机连接WiFi时,点击代理设置为手动,修改设置代理IP,端口为Charles监听的端口,默认为8888,可在上一步Proxy Settings中查看和修改

五、应用抓取http包: App开发时,HTTP请求HttpRequestOptions参数设置,可参考文档

1)设置usingProxy为true,表示使用HTTP代理(该字段默认为false 不使用代理)

2)设置caPath(可根据环境使用设置,默认使用系统预设CA) http参数设置 charles工具配置

【总结】

使用Charles工具抓包需要严格按照文档说明使用,大部分问题都是配置错误导致的。


DevEco Studio提供ArkTS Inspector用于网络调试,可捕获HTTP/HTTPS请求。在编辑器底部工具栏点击"ArkTS Inspector"启动,需确保设备已连接并开启调试模式。该工具支持实时查看请求头、响应数据及状态码,与Android Studio的Network Profiler功能对应,但基于鸿蒙平台特性实现。

目前DevEco Studio尚未内置类似Android Studio App Inspection的网络抓包工具。开发过程中可通过以下替代方案实现网络调试:

  1. 使用第三方抓包工具

    • Fiddler/Charles配置代理抓包
    • Wireshark进行网络流量分析
    • 终端设备安装HTTP抓包工具
  2. 代码级网络监控

    • 在HarmonyOS应用中使用hilog输出网络请求日志
    • 自定义网络拦截器记录请求/响应数据
  3. 开发者选项调试

    • 开启HiDebug调试模式
    • 使用hdc命令监控应用行为

建议关注DevEco Studio版本更新,后续可能会增强网络调试能力。当前阶段结合现有工具链可满足基本网络调试需求。

回到顶部