1、简介
Charles是目前最强大最流行的http抓包调试工具,Mac、Unix、Windows各个平台都支持。特别是做APP开发,调试与服务端的通信,Charles是必备工具。Charles本质是就是
一个http抓包分析工具,在工作的时候需要先把charles设置成代理服务器,这样所有的网络请求都会经过charles了。
官方下载地址:https://www.charlesproxy.com/download/
破解方法(要不然只能默认使用30分钟就自动关闭):
安装后先打开Charles一次(Windows版可以忽略此步骤)
下载破解文件charles.jar
替换掉原文件夹里的charles.jar
Windows: C:\Program Files\Charles\lib\charles.jar
安装完以后,去掉windows proxy的勾选。
原因是去掉后过滤掉PC上抓到的包,只抓取移动终端上的信息。
2、设置抓取https协议的包
设置charles ssl代理:Proxy->SSL Proxy Settings 弹出一个ssl代理设置界面
1)Enable SSL Proxying复选框打上勾
2)添加你想要的设置代理的域名,端口默认443(不添加的话,会出现乱码)
3、手机下载ssl证书
1)Help->SSL Proxying ->Install Charles Root Certificate on a Mobile Device or Remote Browser,会弹出如下提示框:
手机浏览器输入上述的网址https://chls.pro/ssl,会提示输入图案,绘制好之后即可自动下载证书到手机端。
给证书输入一个名称,保存即可。
4、设置代理(记住手机跟电脑要在同一个网络,用的同一个路由器)
1)查看默认端口 Proxy->Proxy Settings 在这个页面会看到HTTP Proxy的默认端口是8888 我们不需要修改,只需要知道有这个值就行
2)查看当前电脑的ip,例如我这里的是:10.8.12.161
3)接下来手机端设置代理,如下图所示即可
主要看截图代理里面,填写电脑得ip地址和刚才上面配置》》HTTP Proxy的端口,我上面是配置的8888
手机连接到Charles时会弹出提示框是否连接,点击Allow允许即可:
完成了以上步骤就可以抓到https请求的数据了,效果图如下
第一个请求详细信息:
第二个请求如下
比如我需要这三个参数去发送请求,就可以在这里看到,接着在下面api用这三个参数去发送请求
若要抓取http请求,在Charles的菜单栏上选择“Proxy”->“Proxy Settings”,填入代理端口8888(注意,这个端口不一定填写8888,也可以写别的端口,但是需要记住这个段扩,
因为这里设置的允许接入的端口,手机端配置的时候需要用到),并且勾上”Enable transparent HTTP proxying” 就可以了。
如何用Charles进行打断点:(有时候需要有这样的需求,比如我使用微信的三方登录时候需要code参数值,但是这种code只能使用一次即失效,所以我需要截取手机微信登录拿到code,这时候就需要使用Charles添加断点)
1)用Charles抓包发起一次接口请求
2)对要打断点的接口右键,选择【Breakpoints】
设置之后,点击Charles菜单【Proxy】-【Breakpoints Settings】即可看到需要断点的请求
注意,记得打开电脑防火墙:
如果是https的,点unknown,右键,ssl proxying enable打开