charles相当于一个插在服务器和客户端之间的“过滤器”;

当客户端向服务器发起请求的时候,先到charles进行过滤,然后charles在把最终的数据发送给服务器;

注意:此时charles发给服务器的数据,不一定是客户端请求的数据;charles在接到客户端的请求时可以自由的修改数据,甚至可以直接Block客户端发的请求;

服务器接收请求后的返回数据,也会先到charles,经过charles过滤后再发给客户端;

同理:客户端接收的数据,不一定就是服务器返回的数据,而是charles给的数据;

正因为上面的原理,所以charles能实现的功能,对前端开发者来说非常有吸引力,相当于请求和响应都可控的,而且charles为了控制更加方面,提供很多简洁的操作

 

1.下载安装

 https://www.charlesproxy.com

2.设置代理

点击“代理-代理设置”,设置一个端口

charles抓包IOSunknown charles抓包怎么看懂数据信息_服务器

 

手机连接wifi后,配置该wifi代理为手动,代理主机输入本机电脑的ip和此端口,就可以正常抓包

3.设置抓取特定ip

方法一:在 Charles 的菜单栏选择 “Proxy”->”Recording Settings”,然后选择 Include 栏,选择添加一个项目,然后填入需要监控的协议,主机地址,端口号。这样就可以只截取目标网站的封包了;

方法二:在主界面的中部的 Filter 栏中填入需要过滤出来的关键字。

charles抓包IOSunknown charles抓包怎么看懂数据信息_数据_02

 

 4.模拟接口发送请求

△Map 功能适合长期地将某一些请求重定向到另一个网络地址或本地文件。

△Rewrite 功能适合对网络请求进行一些正则替换。

△Breakpoints 功能适合做一些临时性的修改。

先新建一个JSON文件,取名 test.json,输入一个简单的测试数组

[
“hello”,
“world”
]

打开Charles,Tools - Map Local

charles抓包IOSunknown charles抓包怎么看懂数据信息_客户端_03

 

 5.charles重复发送一个网络请求&同时发送N次

重发网络请求的目的:后端调试的过程中,一直在客户端进行点点点比较麻烦,此时直接发送请求比较方便查看调试后的结果(方便后端调试)

1.重复发送一个请求(有两种方法)

(1)选定该请求,右键选择repeat,则会将请求重新发送一遍

(2)选定该请求,直接点击导航栏上面的重复按钮,下图所示

 

charles抓包IOSunknown charles抓包怎么看懂数据信息_数据_04

 

 

2.让请求同时发送N次

目的是判断多次发送请求时,服务器的响应时间如何。

右键选中该请求,repeat下面还有一个Repeat Advanced选项,其实该选项也是重复发送请求的一种,可以同时发送多个请求。点击ok之后会回到主页面可观察到请求被发送了10次。

 

charles抓包IOSunknown charles抓包怎么看懂数据信息_客户端_05

 

 6.撰写请求

可以修改、增加、删除参数名、参数值,请求头等等

charles抓包IOSunknown charles抓包怎么看懂数据信息_数据_06

 

 

7.断点--可以看到 修改过后的请求返回是什么效果,达到测试的目的。

Breakpoints 功能类似我们在 Xcode 中设置的断点一样,当指定的网络请求发生时,Charles 会截获该请求,这个时候,我们可以在 Charles 中临时修改网络请求的返回内容。

对要打断点的接口右键,选择【Breakpoints】

在工具栏可以查看打上断点的url

charles抓包IOSunknown charles抓包怎么看懂数据信息_charles抓包IOSunknown_07

 

 双击此url,修改查询为*,设置可修改请求和响应

charles抓包IOSunknown charles抓包怎么看懂数据信息_charles抓包IOSunknown_08

点击ok, 重新再跑一下接口。 当跑到设置断点的接口时,网页会暂停,这个时候Charles进入breakpoints

点击Edit Request 修改请求参数。这里根据你要测试的数据来修改

charles抓包IOSunknown charles抓包怎么看懂数据信息_charles抓包IOSunknown_09

 

 修改好参数后,点击Execute (执行)。 另外 Abort (中止), Cancel (取消)

点击执行后,来到返回的页面,这个时候在Charles可以查看返回的数据。也可以对其进行修改,好了之后 点击 Execute

 8.模拟慢速网络

选择 “Proxy”->”Throttle Setting” (节流设置)项,在之后弹出的对话框中,我们可以勾选上 “Enable Throttling”,并且可以设置 Throttle Preset 的类型。如下图所示:

charles抓包IOSunknown charles抓包怎么看懂数据信息_charles抓包IOSunknown_10