图解如何利用 Charles 抓包

一、什么是Charles
Charles是一个HTTP代理服务器,HTTP监视器,反转代理服务器,当浏览器连接Charles的代理访问互联网时,Charles可以监控浏览器发送和接收的所有数据。它允许一个开发者查看所有连接互联网的HTTP通信,这些包括request, response和HTTP headers (包含cookies与caching信息)。
二、为什么选择Charles
通过对网络上传输的数据进行抓取,可以对其进行分析,对于软件开发调试有很大的帮助。
那么Charles牛在哪里呢?主要功能如下:
1、支持SSL代理,可以截取分析SSL的请求
2、支持流量控制。可以模拟慢速网络(2G,3G),以及等待时间较长的请求。
3、支持AJAX调试。可以自动把JSON或者XML数据格式化,方便查看。
4、支持重发网络请求,方便后端调试。
5、支持修改网络请求参数。
6、支持网络请求的截取和动态修改。
7、支持多个平台(Mac,Windows、Linux)。
三、Charles的下载与安装过程
Charles下载:http://www.macbl.com/app/internet/charles
Mac下安装:
打开Charles-4.2.1.dmg后将Charles.app拖到应用程序目录下即完成安装。

四、Http抓包操作步骤
1、开启Charles http代理。

2、激活http代理功能。

3、获取Mac的iP地址,按住Option, 打开网络。

4、手机端Wi-Fi添加代理(iPhone端设置)。
注意: 手机所连接Wi-Fi要与电脑在同一个LAN(局域网)。

5、开启Charles录制功能。

6、启动应用开始抓包。

7、分析抓取的数据包:Charles 主要提供两种查看封包的视图,分别名为 “Structure”和 “Sequence”

五、Https抓包操作步骤
1、安装Https.cer证书。

2、iPhone获取证书并安装:在Safari输入 chls.pro/ssl。

3、指定URL请求并且开启SSL代理功能。

4、重复Http抓包操作步骤
总结
通过Charles软件,我们能够截取和调试网络请求内容,分析封包协议以及模拟慢速网络。利用好 Charles 可以极大的方便我们对于带有网络请求的 App 的开发和调试。
希望本文能够帮助大家~
