Charles是一个web调试代理,使开发人员能够查看机器和互联网之间的所有HTTP和SSL/HTTPS流量,这包括对HTTP 1.1和2.0的请求、响应、头文件、TLS信息、压缩和性能以及Protobuf等二进制协议进行深度检查,Charles非常适合测试Web或移动应用程序的API请求和响应。
下载与安装
Charles是收费软件,不过就算是不付费,前30天也可以免费使用,30天后每次打开只能使用30分钟,在功能上完全没有限制。现在我们到Charles官网下载安装包,并在安装完成后启动Charles。
上面的提示说,Charles可以自动配置网络设置,以便与Charles一起使用,要求您授予Charles代理设置应用程序的权限。只需要授予一次,你想现在就授权吗?一般选择“Grant Privileges”授予权限。
手机端抓Http请求
监听手机端的Http请求是要使手机和电脑在一个局域网内,Mac OS下查看IP地址要依此点击“系统偏好设置->网络->高级->TCP/IP”,然后查看IP地址。
然后在手机端打开WiFi代理设置,进行相关的配置,服务器填写电脑的IP地址,然后端口这里填写Charles默认的8888,如果修改其他端口就写成自己修改的端口。
一般我们配置完成后,会看到一个Charles与手机端的连接提示窗口,这里选择Allow就可以了。
手机端抓Https请求
现在很多APP都在使用Https请求,因此我们非常需要学习如何监听Https请求。由于Https协议的特殊性,因此要求电脑端和手机端都安装证书,否则会看到返回的数据都是乱码。首先,电脑端下载证书的操作如下图。
如何在手机端下载证书,在手机端打开访问http://www.charlesproxy.com/getssl,会自动安装Charles SSL证书。要注意的是,同一个手机对应不同电脑上的Charles都要下载证书,因为手机端证书是和电脑端的Charles唯一配对的。
最后再进行下相关的配置,选择Proxy->Proxy Settings,弹出Proxy设置选项卡,按如下图添加,抓取任意站点、8888端口的数据。