说明
charles相当于一个插在服务器和客户端之间的“过滤器”;
当客户端向服务器发起请求的时候,先到charles进行过滤,然后charles在把最终的数据发送给服务器;
注意:此时charles发给服务器的数据,不一定是客户端请求的数据;charles在接到客户端的请求时可以自由的修改数据,甚至可以直接Block客户端发的请求;
服务器接收请求后的返回数据,也会先到charles,经过charles过滤后再发给客户端;
同理:客户端接收的数据,不一定就是服务器返回的数据,而是charles给的数据;
正因为上面的原理,所以charles能实现的功能,对前端开发者来说非常有吸引力,相当于请求和响应都可控的,而且charles为了控制更加方面,提供很多简洁的操作;
Charles的主要功能:
• 抓取 Http 和 Https 的请求和响应,抓包是最常用的了。
• 重发网络请求,方便后端调试,复杂和特殊情况下的一件重发还是非常爽的(捕获的记录,直接repeat就可以了,如果想修改还可以修改)。
• 修改网络请求参数(客户端向服务器发送的时候,可以修改后再转发出去)。
• 网络请求的截获和动态修改。
• 支持模拟慢速网络,主要是模仿手机上的2G/3G/4G的访问流程。
• 支持本地映射和远程映射,比如你可以把线上资源映射到本地某个文件夹下,这样可以方面的处理一些特殊情况下的bug和线上调试(网络的css,js等资源用的是本地代码,这些你可以本地随便修改,数据之类的都是线上的环境,方面在线调试);
• 可以抓手机端访问的资源(如果是配置HOST的环境,手机可以借用host配置进入测试环境)
安装
- 下载
下载地址:https://www.charlesproxy.com/latest-release/download.do
下载最新的包,点击安装即可 - 破解
破解地址:https://www.zzzmode.com/mytools/charles/
进入该地址,选择对应的版本,生成jar文件后,放到charles安装目录的lib目录,重启charles,查看已破解,如下图: