1、Charles的安装
Charles是一个HTTP代理服务器,HTTP监视器,反转代理服务器。与Fiddler作用大致相同,但Charles作为一款收费的抓包软件,它比Fiddler更为易上手,功能更为简洁明了,对Http请求容易控制。而且Fiddler在MacOS中存在不兼容的情况,所以大部分MacOS用户更多的会使用Charles进行抓包测试。
下面为Charles的安装路径:https://www.charlesproxy.com/download/分别是:MacOS与Windows都可以在此进行下载
2、Charles的配置
以Mac版本为例,安装完毕后Proxy→Proxy Settings→Proxies→填写HTTP Proxy中port:8888(可随意进行配置,注意不要与其他端口重复,重复会造成每次端口更新)当然到此为止配置仍在继续。
上面的步骤完成后,Proxy→Proxy Settings→macOS,Proxy→Proxy Settings→勾选macOS Proxy
配置完以上内容后,仅能进行对Http请求的抓取,如需对Https请求进行抓取需在电脑与手机中进行证书安装,Help→SSL Proxying→Install Charles Root Certificate 安装后跳出钥匙串界面,对该证书调整为始终信任。然后对手机进行证书安装,手机连接Charles代理Localip:8888,然后使用手机自带浏览器chls.pro/ssl下载安装证书并对证书进行信任
如果抓取Https请求时出现“unknown”的话,千万千万不要着急并给电脑一记重拳,因为还差最后一步。Proxy→SSL Proxying Settings→SSL Proxying→勾选Enable SSL Proxying并配置Host为*,Port:443与Host为*,Port:*
这样就可以对Https请求进行快乐的抓包了。。。
3、利用Charles过滤请求
当你想在一大堆请求中抓取所需要的请求时,该功能就显得极为中要了,当然Charles也会满足你的要求。
方法一:首先我们还是点击“Proxy”,然后进入“Recording Settings”,选择“include”加上所要进行过滤的host与path即可。
方法二:可以利用请求框下方的Filter进行筛选,例如:输入www.baidu.com,即可对百度的所有请求进行筛选
方法三:利用Focus进行置顶筛选,相比上面两种,这个方法可以将需要筛选的请求置顶,其他请求将会放在Other Hosts进行集合。使用步骤为:选择一条请求,右键进行选中,选择“Focus”,这样该请求就会与其他请求进行分离。
方法四:既然是最后一个方法,当然是最简单的了,MacOS按下“Command+F”输入所查找的Host,Windows按下“Ctrl+F”输入所查找的Host即可。(当然你可以搜的更精确些,这样就不会向图中出现这么多啦)
4、Charles设置断点
与Fiddler一样,Charles同样具有设置断点,修改参数的功能。
方法一:点击“Proxy”,选择“Breakpoint Settings”进入断点设置界面,勾选“Enable Breakpoints”增加你需要打断点的请求即可,确认后发起请求查看是否会出现一个带有红标的请求,且其他请求消失,点击“Edit Request”编辑参数即可。
方法二:选择需要打断点编辑的请求,按下鼠标右键,选择“Breakpoints”,重新发起这条请求并按照上述步骤进行编辑即可。
5、Charles模拟弱网络进行测试
弱网络测试相关介绍已在Fiddler的这篇文章中介绍https://blog.csdn.net/Lu_GXin/article/details/105765422,下面让我来讲述下如何在Charles中配置弱网络环境。同样Proxy→Throttle Settings→勾选Enable Throttling即可对所有请求进行弱网络上传与下载速度进行编辑,当然大家应该看到了“Only for selected hosts”这个选项了,勾选该选项后可以对指定的host进行弱网络请求测试。很神奇吧!
本人目前为刚工作2年的小测试,分享只是为了让大家了解该软件的用途,同时也在为自己做一个记录,目前也在继续学习更高端的内容,以后会进行分享记录。