前端跨平台调试代理神器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 ...
随机推荐
- Spring框架漏洞总结
目录 SpEL注入攻击 Spring H2 Database Console未授权访问 Spring Security OAuth2远程命令执行漏洞(CVE-2016-4977) Spring Web ...
- 解锁Java线程池:实战技巧与陷阱规避
专业在线打字练习网站-巧手打字通,只输出有价值的知识. 一 前言 线程池作为初学者常感困惑的一个领域,本次"巧手打字通课堂"将深入剖析其中几个最为普遍的误区.为了更清晰地阐述这些知 ...
- ant-design-vue 登录表单校验
最近刚刚上手了 Vue3 的 antdv ui框架,来做个简单的登录校验练练手 安装 antdv 依赖 npm install ant-design-vue --save 在 main.ts/js 中 ...
- eBPF 概述:第 3 部分:软件开发生态
1. 前言 在本系列的第 1 部分和第 2 部分中,我们对 eBPF 虚拟机进行了简洁的深入研究.阅读上述部分并不是理解第 3 部分的必修课,尽管很好地掌握了低级别的基础知识确实有助于更好地理解高级别 ...
- redis 配置文件 - 启动redis 使用文件配置启动
# Redis configuration file example. # # Note that in order to read the configuration file, Redis mus ...
- Android复习(四)-->权限汇总
官方地址: https://developer.android.google.cn/reference/android/Manifest.permission#public-constructors ...
- rocketmq安全漏洞
漏洞内容 服务器支持 TLS Client-initiated 重协商攻击(CVE-2011-1473)[原理扫描] 该漏洞存在于SSL renegotiation的过程中.对于使用SSL重协商功能的 ...
- JOI Open 2018
T1 Bubble Sort 2 题意:给定一个长度为 \(n\) 的序列 \(a\),进行 \(q\) 次修改,第 \(i\) 次将第 \(x_i\) 个元素的值修改为 \(y_i\). 对于每次操 ...
- 关系图谱后端不给指向性字段使用children
.markdown-body { line-height: 1.75; font-weight: 400; font-size: 16px; overflow-x: hidden; color: rg ...
- KubeSphere 助力提升研发效能的应用实践分享
作者:卢运强,主要从事 Java.Python 和 Golang 相关的开发工作.热爱学习和使用新技术:有着十分强烈的代码洁癖:喜欢重构代码,善于分析和解决问题.原文链接. 我司从 2022 年 6 ...