Charles 抓包工具

引言:

Charles主要的功能:

  1. 截取Http、Https网络请求内容
  2. 支持修改网络请求参数,方便调试
  3. 支持网络请求的截取 并动态修改


# 一. 将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 地址: