一、Charles(青花瓷)介绍
是一个
HTTP
代理服务器,HTTP
监视器,反转代理服务器,当浏览器连接Charles
的代理访问互联网时,Charles
可以监控浏览器发送和接收的所有数据。它允许一个开发者查看所有连接互联网的HTTP
通信,这些包括request
,response
和HTTP headers
(包含cookies
与caching
信息)。
二、Charles主要功能
- 支持
SSL
代理。可以截取分析SSL
的请求。 - 支持流量控制。可以模拟慢速网络以及等待时间(latency)较长的请求。
- 支持
AJAX
调试。可以自动将json
或xml
数据格式化,方便查看。 - 支持
AMF
调试。可以将Flash Remoting
或Flex Remoting
信息格式化,方便查看。 - 支持重发网络请求,方便后端调试。
- 支持修改网络请求参数。
- 支持网络请求的截获并动态修改。
- 检查
HTML
,CSS
和RSS
内容是否符合W3C
标准。
三、安装Charles
可以直接去官网https://www.charlesproxy.com/下载,也可以在网上搜一下破解版本的。
下载之后,安装即可。
四、配置Charles
1、首先确保你的手机和电脑在同一个WiFi下(关键)
两者一定是在同一网络环境下
2、在手机上和电脑上安装描述文件
在Charles的Help菜单的SSL Proxying下选择如图选项
然后电脑上会弹出一个提示框
这个时候,打开手机的网络设置,开始配置代理
这里服务器填写手机安装证书提示框的IP地址,端口填写提示框里面的端口。
记住,这只是安装,并没有信任证书,还要去设置一下信任。在设置->关于本机->证书信任设置路径下。如图:
此时,手机上的描述文件就安装完毕了
接着安装电脑的证书
点击如图选项,然后就会跳转到本地钥匙串,如果证书没有信任的话,双击一下证书,设置为始终信任即可。
至此,证书部分安装完毕。
打开Charles,进行Proxy Setting
这里使用默认的8888端口号
接着设置SSL Proxying Settings
Host填写一个*,代表通配符
Port填写:443端口
点击OK保存,至此所有的设置都做好了。
五、开始抓数据,抓一下手机百度的数据吧。
选中数据对应的接口,给该地址添加一个断点。然后手机再次下拉刷新数据,测试会停到这个断点的地方,此时你可以编辑请求的部分,如果不需要,直接点击下面的Execute按钮,测试数据加载过来了,选中Edit Response,找到你想更改的数据,进行编辑,编辑之后,点击下面的Execute按钮。
回到App查看变更结果
注意点:
-
确保手机和电脑在同一个WiFi下
-
手机安装描述文件一定是在配置好代理之后再去打开chls.pro/ssl进行安装
-
安装不代表信任,一定要去设置/关于手机/证书信任设置里面进行信任证书设置
-
SSL Proxying Settings和Proxy Setting如图就行
-
添加打点之后要再次在手机上刷新数据才能走到断点,进行Edit Request,然后点击Execute进行下一步的Edit Response,修改好之后,再次点击Execute按钮,此时回到App即可查看效果。
之所以记录这个过程,是因为我之前只是使用Charles进行获取数据,辅助开发,并没有用到篡改数据的功能,这里记录一下,以便于学习。如有问题,可以在下方评论,共勉之。