Charles简单介绍
是一个HTTP代理服务器,HTTP监视器,反转代理服务器,当浏览器连接Charles的代理访问互联网时,Charles可以监控浏览器发送和接收的所有数据。它允许一个开发者查看所有连接互联网的HTTP通信,这些包括request, response和HTTP headers (包含cookies与caching信息)
Charles 主要提供两种查看封包的视图
-
Structure 视图将网络请求按访问的域名分类。
-
Sequence 视图将网络请求按访问的时间排序。
过滤网络请求
-
在 Charles 的菜单栏选择 “Proxy”–>“Recording Settings”,然后选择 Include 栏,选择添加一个项目,然后填入需要监控的协议,主机地址,端口号。这样就可以只截取目标网站的封包了。
-
在想过滤的网络请求上右击,选择 “Focus”,之后在 Filter 一栏勾选上 Focussed 一项
主要使用功能
截取 Http 和 Https 网络封包
安装证书即可截取
如果你需要截取分析 Https 协议相关的内容。那么需要安装 Charles 的 CA 证书。
截取移动设备中的 Https 通讯信息
根据需要按的手机类型网上找对应教程。
对服务器做简单的压力测试
我们在想打压的网络请求上(POST 或 GET 请求均可)右击,然后选择 「Repeat Advanced」菜单项,填写线程数和并发量,并发送请求。
修改网络请求参数
有些时候为了调试服务器的接口,我们需要反复尝试不同参数的网络请求。Charles 可以方便地提供网络请求的修改和重发功能。点击图中符号,即可创建一个可编辑的网络请求。
我们可以修改该请求的任何信息,包括 URL 地址、端口、参数等,之后点击 “Execute” 即可发送该修改后的网络请求(如下图所示)。Charles 支持我们多次修改和发送该请求,这对于我们和服务器端调试接口非常方便,如下图所示:
网络请求的动态修改
有些时候我们想让服务器返回一些指定的内容,方便我们调试一些特殊情况。例如列表页面为空的情况,数据异常的情况,部分耗时的网络请求超时的情况等。如果没有 Charles,要服务器配合构造相应的数据显得会比较麻烦。这个时候,使用 Charles 相关的功能就可以满足我们的需求。
根据具体的需求,Charles 提供了 Map 功能、 Rewrite 功能以及 Breakpoints 功能,都可以达到修改服务器返回内容的目的。这三者在功能上的差异是:
-
Map 功能适合长期地将某一些请求重定向到另一个网络地址或本地文件。
-
Rewrite 功能适合对网络请求进行一些正则替换。
-
Breakpoints 功能适合做一些临时性的修改。
模拟慢速网络
在 Charles 的菜单上,选择 “Proxy”–>“Throttle Setting” 项,在之后弹出的对话框中,我们可以勾选上 “Enable Throttling”,并且可以设置 Throttle Preset 的类型。如下图所示:
如果只想模拟指定网站的慢速网络,可以再勾选上图中的 “Only for selected hosts” 项,然后在对话框的下半部分设置中增加指定的 hosts 项即可。