什么是Charles
Charles是一个HTTP代理服务器,HTTP监视器,反转代理服务器,当程序连接Charles的代理访问互联网时,Charles可以监控这个程序发送和接收的所有数据。它允许一个开发者查看所有连接互联网的HTTP通信,这些包括request, response和HTTP headers包含cookies与caching信息)。
Charles安装
去Charles的官方网站(http://www.charlesproxy.com)下载最新版的相应操作系统的Charles安装包安装即可。Charles是收费软件,可以免费试用30天。试用期过后,未付费的用户仍然可以继续使用,但是每次使用时间不能超过30分钟,并且启动时将会有10秒种的延时。
破解Charles收费功能
链接:https://pan.baidu.com/s/1uPvSvrP9mApG76ttssIPxg 密码:ih46 下载charles.jar。MAC OS中将下载的jar替换掉/Applications/Charles.app/Contents/Java文件夹中的charles.jar
获取pc端网络请求包
Charles 是通过将自己设置成代理服务器来完成抓包的,勾选系统代理后,系统本地发出去的请求都能被截取下来。如果只抓取APP的包的话,可关闭此配置,这样不会出现太多的数据看着比较乱。
获取移动端网络请求包
我们在调试移动APP时,需要抓取APP发送的数据包,首先进行设置,Proxy -> Proxy Settings默认端口是8888,根据实际情况可修改。
查看本机IP地址:Help -> Local IP Addresses

然后配置手机代理:
填写pc端ip已经刚才设置的端口号
打开要调试的APP,请求就会先发送到Charles,然后验证是否允许访问。

查看网络请求
过滤请求:在Sequence界面的中部的Filter栏中填入需要过滤出来的关键字。例如我们的服务器的地址是:*.leautolink.com,那么只需要在Filter栏中填入leautolink即可。(一般用于临时过滤)
代理转发
实际开发时,有这样的场景,服务端线上版本有bug,你在本地修改程序后,需要模拟实际的线上环境,来验证程序的正确性,最笨的方法就是让客户端修改一下APP的调用地址到你本机,然后重新打一个版本供你模拟测试,这样虽然可以,但每次遇到bug都要这么做的话,那效率极其低下,然而Charles为我们解决了这个问题。
请求转发,把调用方调用的地址转发到你本机地址的程序进行执行
右键请求 -> Map Remote ...
并且配置Tools -> Map Romote
Https请求抓包
默认我们是看不到https的请求数据的。我们需要安装证书。
mac
双击打开Charles Proxy CA
手机配置完代理(必须的操作)后,浏览器打开http://chls.pro/ssl下载证书并安装
然后配置Proxy -> SSL Proxying Settings... 添加要抓取的https请求,两个都写,*代表所有
配置完成
参考文章:https://www.jianshu.com/p/993bc794138d