Charles 抓包工具
引言:
Charles主要的功能:
- 截取Http、Https网络请求内容
- 支持修改网络请求参数,方便调试
- 支持网络请求的截取 并动态修改
# 一. 将Charles设置成系统代理
启动 Charles 后,第一次 Charles 会请求你给它设置系统代理的权限。你可以输入登录密码授予 Charles 该权限。你也可以忽略该请求,然后在需要将 Charles 设置成系统代理时,选择菜单中的“Proxy” -> “Mac OS X Proxy”
来将 Charles 设置成系统代理。如下所示:
其中Charles 主要提供两种查看封包的视图,分别名为 “Structure”
和 “Sequence”
。
Structure: 视图将网络请求按访问的域名分类。
Sequence: 视图将网络请求按访问的时间排序。
# 二. 过滤网络请求
在Filter 栏中填入需要过滤出来的关键字(可模糊搜索):
比如:
# 三. 模拟慢速网络
在 Charles 的菜单上,选择Proxy ->Throttle Setting->Enable Throttling
:
如果我们只想模拟指定网站的慢速网络,可以再勾选上图中的“Only for selected hosts”
项即可。
# 四. 修改网络请求内容
我们可以修改该请求的任何信息,包括 URL 地址、参数等,之后点击 “Execute” 即可发送该修改后的网络请求(如下图所示)。Charles 支持我们多次修改和发送该请求,这对于我们和服务器端调试接口非常方便,如下图所示:
# 五. 修改服务器返回内容
理由:iOS前端的开发人员独立完成测试而不用拉过来一个后端一起联调。并且各种特殊维度,或是临界的账号也不用再去辛苦找了,仅仅自己在青花瓷上改来改去就可以达到效果了。比如这个地方如果返回了nil程序会不会崩,直接改response就行了.
# 步骤:
首先 要保证是开启请求断点是打开的
选择要修改的接口内容 ,勾选Breakpoints
打开青花瓷切换成结构页面,切换成Structure
点击Execute之后,修改内容
没改之前:
改完之后:
# 六. 给服务器做压力测试
接着我们就可以在弹出的对话框中,选择打压的并发线程数以及打压次数,确定之后,即可开始打压。(开发部建议使用,这是测试的活,不能端了人家的饭碗)
# 七. 抓取手机App网络请求
在 Charles 的菜单栏上选择 “Proxy”->”Proxy Settings”
,填入代理端口 8888
并且勾上 “Enable transparent HTTP proxying”
就完成了在 Charles 上的设置.
获取 Charles 运行所在电脑的 IP 地址,Charles 的顶部菜单的“Help”->”Local IP Address”
,即可在弹出的对话框中看到 IP 地址: