前端跨平台调试代理神器Whistle
概述
抓包一直是平时开发中经常要做的,有一款好用的抓包工具可以让开发体验更棒,以前一直用fiddler,fiddler虽然强悍,但是入手有一定难度,而且较笨重,今天介绍另一款抓包工具:Whistle。
Whistle是一款前端调试神器,通过拦截、修改和模拟网络请求,帮助开发人员调试接口、排查网络问题。它提供实时查看、修改请求响应数据的功能,支持重定向、缓存策略等自定义配置。
安装
Whistle依赖node环境,安装前先安装好node。
npm install -g whistle
常用命令
// 查看版本
whistle -V
// 查看whistle命令帮助
whistle help
// 启动whistle,可以指定端口
w2 start
w2 start -p 8899
// 重启whistle(也支持指定端口)
w2 restart
// 停止whistke
w2 stop
看到如下界面表示whistle运行成功了

前提配置
Whistle要成功抓包,需要配置代理,代理可以在浏览器端,也可以全局配置,如果你是在PC上调试推荐使用浏览器插件代理,如果你是想在手机上调试,请使用全局代理,再配置手机的代理
浏览器代理
浏览器代理的话要使用浏览器的代理插件SwitchOmega,我平时习惯使用Edge,此处以Edge浏览器为示例说明
让插件常驻工具栏

配置浏览器代理

用浏览器代理的好处是可以随时切换关闭

全局代理
因为我是window电脑,此处以window电脑为示例说明

手机代理
移动端要配置代理的话,需要保证手机 WIFI 和 PC 是同一网络,再按如下步骤配置(安卓手机

Https支持
上面代理配置好后,虽然能拆包了,但是只能抓到http的包,想开启https的话安装证书即可

window下证书安装的时候一直下一步即可,其中有一步做一下如下图选择即可,安装好证书后记得重启下whiste,不然不会生效,我就踩过这个坑,导致证书装了很多次,最后发现重启OK了。

如果要抓包手机端的https请求,手机扫码上面https证书二维码,下载证书安装即可。
至此就完成whiste的抓包配置,可以愉快玩耍了
Whiste食用轻指南
认识Whiste控制台

- NetWork: 查看请求响应的详细信息及请求列表的Timeline
- Rules: 匹配规则,whistle核心,想用好whiste,主要就是修改此处的配置
- Values: 配置key-value的数据,在Rules里面配置可以通过获取
- Plugins: 显示所有已安装的插件列表,开启关闭插件功能
NetWork认识

Values添加
Values配置后记得按下ctrl+s保存一下

Rules配置一览(非常重要)

# 地址代理 输入百度网址浏览的是魅族官网
# www.baidu.com www.meizu.com
# 线上js代理到本地
# https://pss.bdstatic.com/r/www/cache/static/protocol/https/bundles/es6-polyfill_388d059.js file://C:\Users\xiewu1\Desktop\test\test.js # 使用本地文件
# https://pss.bdstatic.com/r/www/cache/static/protocol/https/bundles/es6-polyfill_388d059.js js://{test.js} # 使用values里文件
# 线上js插入js代码
# https://pss.bdstatic.com/r/www/cache/static/protocol/https/bundles/es6-polyfill_388d059.js jsAppend://C:\Users\xiewu1\Desktop\test\test.js # 使用本地文件
# https://pss.bdstatic.com/r/www/cache/static/protocol/https/bundles/es6-polyfill_388d059.js jsAppend://{test.js} # 使用values里文件
# 指定内容替换为本地文件
# https://pss.bdstatic.com/r/www/cache/static/protocol/https/bundles/es6-polyfill_388d059.js resBody://C:\Users\xiewu1\Desktop\test\test.js
# 指定内容替换为 values 操作值
# https://pss.bdstatic.com/r/www/cache/static/protocol/https/bundles/es6-polyfill_388d059.js resBody://{test.js}
# 注入html
# www.baidu.com html://C:\Users\xiewu1\Desktop\test\test.html # 使用本地文件
# www.baidu.com htmlPrepend://{test.html} # 使用values里文件
# www.baidu.com html://{test.html} # 使用values里文件
# 注入js
# www.baidu.com js://C:/Users/xiewu1/Desktop/test/test.js # 使用本地js文件
# www.baidu.com js://{test.js} # 使用values里文件
# www.baidu.com jsPrepend://{test.js} # 使用values里文件,文件内容插入到页面head最前面
# www.baidu.com jsAppend://{test.js} # 使用values里文件,文件内容插入到页面底部
# 注入存储在电脑本地的css
# www.baidu.com css://C:\Users\xiewu1\Desktop\test\test.css
# www.baidu.com cssAppend://C:\Users\xiewu1\Desktop\test\test.css
# 注入存储在Values里的css
# www.baidu.com cssPrepend://{test.css}
# 接口数据mock数据
# http://api/users/getUsers file://C:\Users\xiewu1\Desktop\test\test.json
# 模拟接口 5s 后返回
# http://api/users/getUsers resDelay://5000
# 使用whistle提供的插件
# www.baidu.com whistle.inspect://vConsole # 会在页面上插入一个类似于vconsole.js的控制台,主要用于移动端调试,支持vConsole,eruda,mdebug
# 解决跨域问题
# `*` 表示设置 access-control-allow-origin: *
# www.example.com resCors://*
# `enable` 表示设置 access-control-allow-origin: http://originHost
# 及 access-control-allow-credentials: true
# www.example.com resCors://enable
注:文件代理这一块如果想统一写法,可以直接用resbody://,不一定要js:// css:// file://这样
Plugins安装
目前我只用到过这个插件,如果你要调试手机项目装这个的插件真的非常棒
// 安装inspect插件,在网页中注入vConsole,eruda,mdebug等控制台,方便调试手机上的H5页面,
// 再也不用担心手机上调试啥都看不到的情况了
npm install whistle.inspect
Whistle抓包过滤(好用)


总结
Whistle是很强悍的抓包工具,相比于Fiddler有更轻量,第一眼看不会眼花眼花缭乱,不知道从哪里下手,而且跨平台,需要的小伙伴赶紧用起来吧,我相信它会给你开发中带来很好的体验的,本文只是介绍了基础的使用,特别是rules有更高级的用法,期待你的分享。
前端跨平台调试代理神器Whistle的更多相关文章
- web调试代理工具Whistle
由于最近在学习微信小程序开发,项目中用到了https代理请求,所以用到了基于Node实现的跨平台web调试代理工具Whistle,在此做一记录. 完成https代理请求总共需要5个步骤. 一.安装No ...
- 跨平台web调试代理工具---whistle
whistle是基于Node实现的跨平台web调试代理工具,支持windows.mac.linux等所有安装了Node的操作系统,可以部署在本地机器.虚拟机或远程服务器,并通过本地网页查看或修改HTT ...
- 推荐前端开发手机调试打印神器console.log()
下面说的这个插件很牛,相信很多人都不知道,但找问题的时候很需要,直接上干货如下: vConsole:一个轻量.可拓展.针对手机网页的前端开发者调试面板. 下载 vConsole 的最新版本.(不要直接 ...
- 【转】fiddler-http协议调试代理工具
题目有一些激进.但是在前端界打滚了这么多年,fiddler一直都是陪着我走过来了.它就是一个抓包神奇,代理神器.它的厉害之处,我简单地说一下,希望你们看了以后,能点上32个赞. 1.fiddler为何 ...
- VUE前端项目配置代理解决跨域问题
VUE前端项目配置代理解决跨域问题 问题如下,经常在本地调试接口出现这种问题 解决方式1:Chrome 的扩展插件 以前使用Chrome 的扩展插件,但是有时候还是会出现莫名其妙的问题. 需要梯子才行 ...
- Safari 前端开发调试 iOS 完美解决方案
转http://www.2cto.com/kf/201403/283404.html afari 前端开发调试 iOS 完美解决方案 2014-03-05 0个评论 来源:Safari ...
- vConsole--针对手机网页的前端 console 调试面板。
一个针对手机网页的前端 console 调试面板. 简介 vConsole 是一个网页前端调试面板,专为手机 web 页面量身设计,帮助开发者更为便捷地进行开发调试工作. 手机预览 http://we ...
- 手机前端开发调试利器 – vConsole
我们在开发手机版网页的时候,常常会出现下面的情景: (1) 开发时,在自己电脑上运行得好好的,在手机上打开就挂了,但是手机上又看不到error log: (2) 上线后,某用户表示页面失灵,但我们自己 ...
- HTTP Analyzer——WEB调试代理
HTTP Analyzer 是一个实时的web调试代理,如果你对Fiddler不陌生的话,HTTP Analyzer 就是和Fiddler具备一样功能的调试代理. 推荐这个软件而不推荐Fiddler的 ...
- 前端读者 | 前端开发者调试面板vConsole
来着微信团队开源的一个调试工具,[GitHub地址]https://github.com/Tencent/vConsole 一个轻量.可拓展.针对手机网页的前端开发者调试面板. 特性 查看 conso ...
随机推荐
- ajax发送 put和delete请求
AJAX发送 PUT和DELETE请求(转载) 转自:https://blog.csdn.net/liuyuanjiang109/article/details/78972644 ajax使用r ...
- Linux cpuidle framework(1)_概述和软件架构
1. 前言 在计算机系统中,CPU的功能是执行程序,总结起来就是我们在教科书上学到的:取指.译码.执行.那么问题来了,如果没有程序要执行,CPU要怎么办?也许您会说,停掉就是了啊.确实,是要停掉,但何 ...
- MobileNet V2中InvertedResidual实现
1.为了方便理解其本身结构,找到源码理解一下. 2.论文地址:http://arxiv.org/pdf/1801.04381.pdf 3.V2相比较V1增加了倒残差结构和线性瓶颈层.整个结构按照维度来 ...
- 1001 Attention 和 Self-Attention 的区别(还不能区分我就真的无能为力了)
通过 pytorch 去构建一个 transformer 的框架 不是导包,不是调包侠 注意力机制是一个很宽泛(宏大)的一个概念,QKV 相乘就是注意力,但是他没有规定 QKV是怎么来的 通过一个查询 ...
- GaussDB: db2->gaussdb 函数转换
一.db2->gaussdb函数转换 问题描述:使用GaussDB替代DB2的方案,使用起来还是有些差别,做一下函数的映射转换. DB2写法 GaussDB改写语法 日期函数 days(OU ...
- Linux系统管理-yum源配置
一.本地光盘yum源配置 1.创建挂载点 [root@localhost ~]# mkdir /mnt/cdrom 2.配置自动挂载本地光盘 [root@localhost ~]# vim /etc/ ...
- 国内空白,AI将文字搜索转化为交互数据图表,融资4000万,已与Perplexity整合
2024年10月17日.产品为利用生成式AI将文字搜索转化为数据图表的美国初创公司Tako,种子轮融资575万美元,折合人民币4000万元. 国外AI搜索主导者Perplexity,其创始人也参与了这 ...
- Elasticsearch倒排索引结构【转载】
一切设计都是为了提高搜索的性能 倒排索引(Inverted Index)也叫反向索引,有反向索引必有正向索引.通俗地来讲,正向索引是通过key找value,反向索引则是通过value找key. 先来回 ...
- Value error: 'ascii' codec can't decode byte 0xe6 in position 26: ordinal not in range(128) The traceback for the exception was written to the log file
原因:工作空间中有中文编码问题,导致的运行ros异常 解决办法: 1.解决urdf生成异常问题 urdf文件中不允许有中文,所有当输入中文的时候容易出问题,解决方案: ①在根目录下:/opt/ros/ ...
- MySQL查询BLOB类型的字段
1.MySQL有四种BLOB类型: 1.TinyBlob 最大能容纳255B的数据 2.Blob 最大能容纳65KB的 3.MediumBlob 最大能容纳16MB的数据 4.LongBlob 最大能 ...