DevEco Studio有类似Android Studio的App Inspection网络抓包工具吗?
DevEco Studio有类似Android Studio的App Inspection网络抓包工具吗?
开发者您好,当前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的网络抓包工具。开发过程中可通过以下替代方案实现网络调试:
-
使用第三方抓包工具
- Fiddler/Charles配置代理抓包
- Wireshark进行网络流量分析
- 终端设备安装HTTP抓包工具
-
代码级网络监控
- 在HarmonyOS应用中使用hilog输出网络请求日志
- 自定义网络拦截器记录请求/响应数据
-
开发者选项调试
- 开启HiDebug调试模式
- 使用hdc命令监控应用行为
建议关注DevEco Studio版本更新,后续可能会增强网络调试能力。当前阶段结合现有工具链可满足基本网络调试需求。