简介
是一个HTTP代理服务器,HTTP监视器,反转代理服务器,当浏览器连接Charles的代理访问互联网时,Charles可以监控浏览器发送和接收的所有数据。它允许一个开发者查看所有连接互联网的HTTP通信,这些包括request, response和HTTP headers (包含cookies与caching信息)。
主要功能
支持SSL代理。可以截取分析SSL的请求。
支持流量控制。可以模拟慢速网络以及等待时间(latency)较长的请求。
支持AJAX调试。可以自动将json或xml数据格式化,方便查看。
支持AMF调试。可以将Flash Remoting 或 Flex Remoting信息格式化,方便查看。
支持重发网络请求,方便后端调试。
支持修改网络请求参数。
支持网络请求的截获并动态修改。
检查HTML,CSS和RSS内容是否符合W3C标准。
没错,以上来自百度百科:https://baike.baidu.com/item/Charles/7841179?fr=aladdin
按照我的说法就是抓取网络数据的.
我们在开发中,某些功能的调试和测试需要后台配合修改数据.有了它你就可以一人独自嗨,想怎么修改测试就怎么来.
一.安装
Charles下载地址:https://www.charlesproxy.com
- 没注册的charles,30分钟就会关闭一次.但是依然还是可以使用的.
二.抓取手机网络包
-
Charles默认抓取电脑网络数据
设置抓取手机数据,这里以iOS为例
- 保证手机和电脑在同一个wifi下面
-
查看当前电脑ip
- 配置Charles:在菜单栏上选择 Proxy->Proxy Settings,填入代理端口 8888,并勾上 “Enable transparent HTTP proxying” 即完成了代理
-
在手机wifi网络中添加代理,输入电脑IP和charles的端口号 8888
- 配置抓HTTPS包
-
Mac安装SSL证书,在Help→SSL Proxying→Install....,如下图所示:
-
选择后,就会出现证书下载,下载成功后会电脑”钥匙串访问“中看见(这里我已经安装并信任过了),然后双击下载的证书,勾选信任即可,如下图所示(在钥匙串访问中寻找下Charles):
-
配置信任
-
手机安装SSL证书,在SSL Proxying中勾选Install ...Mobile Device 会弹出一个框,用手机(处于代理状态下)登陆指定的url下载证书即可,如下图所示:
-
这时候你抓https的时候还是发现不行,乱码加unknown
-
这时候我们还需要一步操作,就是将想要抓的https加入到SSL代理中,这样才能被Charles识别并解析,选择我们要抓的请求,右键你乱码的域名选择"Enable SSL Proxying",如下图所示:
三.其它常用功能
-
网络限速
2.通过修改数据源
-
修改服务器返回的内容
Map Remote(Tools→Map Remote Settings),将网络响应定向至另外一个网络服务,从而达到修改返回内容的目的,如下图所示:
-
Map Local(Tools->Map Local Settings),将网络响应定向至本地文件,从而达到修改返回内容的目的,如下图所示:
3.断点调试,修改网络请求和响应内容
- 打断点
选中需要打断点的域名(一般断点在请求的父目录),右键->Breakpoints -
打了断点,代理会在发送请求的时候拦截并断点网络请求.
4.设置关注请求(有时间,一时间会有多个请求,为了只关注我们关注的请求,简化),选中我们关系的请求,设置Focus即可.