charles抓包
Posted 碎片拾零
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了charles抓包相关的知识,希望对你有一定的参考价值。
Charles 是Mac 常用的抓包工具,也可在Windows使用, charles界面简单直观,易于上手,数据请求控制容易,修改简单,抓取数据的开始暂停方便等等,推荐使用。
安装
Charles 的官方网站(http://www.charlesproxy.com)下载安装;
Charles 是收费软件,可以免费试用 30 天。试用期过后,未付费的用户仍然可以继续使用,但是每次使用时间不能超过 30 分钟,并且启动时将会有 10 秒种的延时。
建议购买正版使用,不想花钱买正版时,也可以下载破解使用,使用方法:
gitoschina码云源码: http://git.oschina.net/iYoungDone/charlesloader
- Windows 平台,将下载的charles.jar文件覆盖到安装目录下的lib文件夹下即可完成破解!
- Mac 平台,将下载的charles.jar文件右键 Charles.app 显示包内容,覆盖到Content->Java下即可完成破解!
移动设备抓包设置
只是抓取HTTP协议时不需要安装证书;HTTPS协议需要安装CA证书
a、 启动Charles,选择 “Proxy”->“Proxy Settings”,填入代理端口 8888,并且勾上 “Enable transparent HTTP proxying” ,点击OK,在设备上再访问网络,请求包就可以被我们抓取到。
b、 通过打开Charles->Help->SSL Proxying->点击最长那个,来查看代理的IP地址、端口号
c、 手机和电脑都连接到同一个网段,设置移动端代理:wifi设置->高级或点击已连接的wifi->Http代理->手动->输入电脑所在的IP地址(192.168.1.104),端口号为8888
d、 设置好之后,启动APP,Charles会弹出是否允许提示框,点击Allow即可
https协议包会被加密,需要安装证书
a、 在移动端浏览器中访问:chls.pro/ssl下载安装证书
b、菜单:Proxy->SSL Proxy Setting,配置需要抓取的https URL,添加一条*.*表示捕获解析所有https请求,如果不配置则不会解析https数据包的内容。
设置断点,修改请求、返回值
a、 右键点击需要模拟的请求,选择Breakpoints
b、 断点设置,Proxy->Breakpoint Settings找到勾选Breakpoints的请求,双击进入编辑如下页面,把Query改成*号,点击OK,如只需修改返回值勾选Response即可
c、 再次请求该接口,会跳转到如下页面,编辑request参数之后,点击下方Execute按钮后,客户端就可以看到请求返回的数据(修改request)
d、 再次请求该接口,编辑Response参数之后,点击下方Execute按钮后,客户端就可以看到请求返回的数据(修改Response)
模拟网速慢
有时候在开发的时候我们想要模拟一下网络慢的情况,这时候Charles他是可以帮助到你的,在Proxy->Throttle Setting,然后选择Enable Throttling,在Throttle Preset下选择网络类型即可,具体设置你可以自行拿捏。
解析下图上几个配置的含义:
Bandwidth(带宽)、Utilistation(利用百分比)、Round-trip(往返延迟)、MTU(字节)就是用来设定可传输数据包的最大尺寸的(MTU的说明请看百度百科)。
请求重定向
请求重定向的作用是什么呢?开发中一般都是测试环境,如果我们想对比一下和线上版本的区别的话,可以讲测试的请求重定向到正式环境下。在选择 Tools->Map Remote下:
内容替换
有时候我们会测一下请求的参数不同会带来不同的返回结果以测试是否达到业务需求,或者需要不同的返回结果来验证我们对数据的处理是否正确,这时候需要后台的同事配合,但是有了Charles,我们可以自己把控接口返回来的内容,比如数据的空与否,数据的长短等等。在Tools->Rewrite Settings下:
重复发送请求
repeat功能对于测试同学特别有用,可以检验接口的健壮性。
repeat功对于前端的价值是不需要刷新页面,只需要repeat请求,比如检验代理是否成功,修改请求后执行等。
“repeat”重复发送一次请求。
“repeat Advances”可以自定义重复次数和重复间隔。
以上是关于charles抓包的主要内容,如果未能解决你的问题,请参考以下文章