Charles使用详解
2018-03-23 本文已影响182人
小喜_ww
前言:
Charles是在 Mac 下常用的网络封包截取工具,在做移动开发时,我们为了调试与服务器端的网络通讯协议,常常需要截取网络封包来分析。
一、主界面介绍
![](https://img.haomeiwen.com/i7116457/c81bb07dc4b471e4.png)
![](https://img.haomeiwen.com/i7116457/9c9f41bb0aee951f.png)
![](https://img.haomeiwen.com/i7116457/b528ed52776accd3.png)
二、网页抓包
启动 Charles 后,需要将 Charles 设置成系统代理,选择菜单中的 “Proxy” –> “macOS Proxy” 来将 Charles 设置成系统代理。如下所示:
![](https://img.haomeiwen.com/i7116457/45ae41a5823838c0.png)
这样你会发现,你通过浏览器请求的网址都会出现在这里。点击某一个网址后,你会发现右边会出现这个网址请求的大概信息,点击具体的请求后会出现request和response等信息。如下图:
![](https://img.haomeiwen.com/i7116457/c09a4ea5906e550f.png)
三、手机抓包
Charles 上的设置:
要截取 iPhone 上的网络请求,我们首先需要将 Charles 的代理功能打开。在 Charles 的菜单栏上选择 “Proxy”–>“Proxy Settings”,填入代理端口 8888,并且勾上 “Enable transparent HTTP proxying” 就完成了在 Charles 上的设置。如下图所示:
![](https://img.haomeiwen.com/i7116457/10ef02cdf7c9ac37.png)
iPhone 上的设置:
首先我们需要获取 Charles 运行所在电脑的 IP 地址,Charles 的顶部菜单的 “Help”–>“Local IP Address”,即可在弹出的对话框中看到 IP 地址,如下图所示:
![](https://img.haomeiwen.com/i7116457/445c89f818694ac8.png)
![](https://img.haomeiwen.com/i7116457/8b996f4f70028ec7.png)
当然如果要抓取iPhone设备上的HTTPS请求,需要在iPhone上也安装一个证书,在手机浏览器输入这个网址:http://charlesproxy.com/getssl ,点击安装即可。
四、过滤
在 Charles 的菜单栏选择 Proxy->Recording Settings,然后选择 Include 栏,选择Add,然后填入需要监控的协议,主机地址,端口号,这样就达到了过滤的目的。如下图:![](https://img.haomeiwen.com/i7116457/1dae0b65b0929474.png)
![](https://img.haomeiwen.com/i7116457/11374f5ea9ffa41f.png)
![](https://img.haomeiwen.com/i7116457/7eca1f7500e22e63.png)
五、模拟慢速网络
有时候在测试的时候我们想要模拟一下网络慢的情况,这时候Charles他是可以帮助到你的,在Proxy->Throttle Setting,然后选择Enable Throttling,在Throttle Preset下选择网络类型即可,具体设置你可以自行拿捏。![](https://img.haomeiwen.com/i7116457/8d930baeb66a7285.png)
如果我们只想模拟指定网站的慢速网络,可以再勾选上图中的 “Only for selected hosts” 项,然后在对话框的下半部分设置中增加指定的 hosts 项即可。
六、修改网络请求
有些时候为了调试服务器的接口,我们需要反复尝试不同参数的网络请求。Charles 可以方便地提供网络请求的修改和重发功能。只需要选中以往的网络请求,工具栏中点击 “Edit”,即可创建一个可编辑的网络请求。如下所示:![](https://img.haomeiwen.com/i7116457/84922153b7afce96.png)
七、给服务器做压力测试
我们可以使用 Charles 的 Repeat 功能来简单地测试服务器的并发处理能力,方法如下:
![](https://img.haomeiwen.com/i7116457/3eaf6e55b5d80d4f.png)
接着我们就可以在弹出的对话框中,选择打压的并发线程数以及打压次数,确定之后,即可开始打压。
八、断点
在Charles发起一个请求的时候,我们是可以给某个请求打一个断点的,然后来观察或者修改请求或者返回的内容,但是在这过程中要注意请求的超时时间。
![](https://img.haomeiwen.com/i7116457/b90b1d334f225024.png)
以上