前往小程序,Get更优阅读体验!
立即前往
发布
社区首页 >专栏 >HarmonyOS 开发实践 —— 使用Charles进行网络抓包

HarmonyOS 开发实践 —— 使用Charles进行网络抓包

原创
作者头像
小帅聊鸿蒙
发布2024-12-19 14:51:08
发布2024-12-19 14:51:08
2620
举报
文章被收录于专栏:鸿蒙开发笔记鸿蒙开发笔记

简介

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

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

Charles是一个HTTP代理服务器,HTTP监视器,反转代理服务器,当浏览器连接Charles的代理访问互联网时,Charles可以监控浏览器发送和接收的所有数据。

使用Charles进行Web网络抓包非常简单,启动Charles会自动与浏览器设置成代理,不需要进行过多的设置,接下来就是通过浏览器发送网络请求,Charles就会直接抓取到这些信息和响应信息。

Charles抓包不仅仅可以抓取来自电脑端的HTTP请求,也能够抓取来自App发出的HTTP请求,但是手机抓包需要在电脑端配置下,并且需要手机和电脑在同一网络下,即需要完成下面的设备代理设置步骤。

虽然现在Charles能够直接抓包了,但是https协议的报文我们是抓取不了的,需要安装SSL证书才可以,即需要完成下面的Charles证书下载与证书安装步骤。

Charles 配置流程

Charles整体的配置流程分为以下三步:

  1. 设备代理设置。

a. 查看Charles的IP地址。

  • Charles的IP地址查看方式:点击【Help】--->【Local IP Address】查看。
  • 电脑IP地址查看方式:打开“运行”(快捷键:win+R键或者在任务栏的”搜索”按钮中查找并点击”运行”),输入“cmd”后进入命令行窗口,在命令行窗口中输入”ipconfig”命令查看IP。

b. 设置Charles侧的调试端口号。

  • 点击 【Proxy】--->【SSL Proxy Settings...】--->在Include栏下点击【Add】--->添加【:】即 Host输入【】Port输入【】,添加 【:443】,即Host输入【】Port输入【443】--->最后点击【ok】;
  • 点击 【Proxy】--->【Proxy Settings...】--->设置【HTTP Proxy】下的Port(即Charles监听的端口,默认是8888)--->勾选【Enable transparent HTTP proxying】--->最后点击【ok】。

c. 手机与PC连接在同一局域网下,手机Wi-Fi设置为手动代理,服务器主机名与端口为Charles的IP地址和Charles监听的端口。

点击需要连接的Wi-Fi进入密码输入页面--->在输入密码前点击【代理】--->选择【手动】--->设置代理的【服务器主机名】为Charles的IP地址,【服务器端口】为Charles监听的端口,即设置成8888--->最后输入密码,连接上Wi-Fi。

第一次连接手机时需要在电脑Charles弹出的连接窗口中选择【Allow】。

  1. Charles证书下载。

a. 安装Charles根证书到PC可信任的目录下:

点击顶部菜单栏【Help】--->选择【SSL Proxying】--->点击【install Charles Root Certificate】--->点击【安装证书】--->设置存储位置(可选择当前用户或是本地计算机)后点击【下一步】--->选择【将所有的证书都放入下列存储】--->点击【浏览】--->设置证书存储路径为【受信任的根证书颁发机构】。

b. 导入系统根证书至手机:

点击Charles顶部菜单栏【Help】--->选择【SSL Proxying】--->点击【Install Charles Root Certificate On a Mobile Device or Remote Browser】--->在手机的自带浏览器中访问http://chls.pro/ssl--->点击【立即下载】,将证书下载至手机内存内。

【Install Charles Root Certificate On a Mobile Device or Remote Browser】

  1. 在移动设备上安装Charles证书。

证书在手机上的安装步骤如下:

在手机端点击【设置】--->【隐私和安全】--->下滑点击【高级】--->选择【证书与凭据】进入证书的安装选项中--->选择【从存储设备安装】--->点击【CA证书】--->点击【继续】--->选择【浏览】--->找到下载的证书的位置--->点击证书--->弹出【安装证书成功】的弹窗文字,则安装成功。

选择【从存储设备安装】

点击【CA证书】

网络请求过滤

通常情况下,我们需要对网络请求进行过滤,只监控指定目录服务器上发送的请求。对于这种需求,有以下两种办法:

  1. 在主界面的中部点击Ctrl+F快捷键打开搜索栏中填入需要过滤出来的关键字。例如我们监听的地址是:www.charlesproxy.com, 那么只需要在上方过滤条件中填入或勾选你需要的信息后点击【Find】按钮即可。
  1. 在 Charles 的菜单栏选择【Proxy】--->【Recording Settings...】--->然后选择 Include 栏--->点击【Add】添加一个项目--->按需填入需要监控的协议后重新监听,这样就可以只截取目标网站了。

写在最后

如果你觉得这篇内容对你还蛮有帮助,我想邀请你帮我三个小忙:

  • 点赞,转发,有你们的 『点赞和评论』,才是我创造的动力;
  • 关注小编,同时可以期待后续文章ing🚀,不定期分享原创知识;
  • 想要获取更多完整鸿蒙最新学习知识点,可关注B站:码牛课堂;

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 简介
  • Charles 配置流程
  • 网络请求过滤
  • 写在最后
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档