概述

抓包一直是平时开发中经常要做的,有一款好用的抓包工具可以让开发体验更棒,以前一直用fiddler,fiddler虽然强悍,但是入手有一定难度,而且较笨重,今天介绍另一款抓包工具:Whistle。

Whistle是一款前端调试神器,通过拦截、修改和模拟网络请求,帮助开发人员调试接口、排查网络问题。它提供实时查看、修改请求响应数据的功能,支持重定向、缓存策略等自定义配置。

官网:wproxy.org/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的更多相关文章

  1. web调试代理工具Whistle

    由于最近在学习微信小程序开发,项目中用到了https代理请求,所以用到了基于Node实现的跨平台web调试代理工具Whistle,在此做一记录. 完成https代理请求总共需要5个步骤. 一.安装No ...

  2. 跨平台web调试代理工具---whistle

    whistle是基于Node实现的跨平台web调试代理工具,支持windows.mac.linux等所有安装了Node的操作系统,可以部署在本地机器.虚拟机或远程服务器,并通过本地网页查看或修改HTT ...

  3. 推荐前端开发手机调试打印神器console.log()

    下面说的这个插件很牛,相信很多人都不知道,但找问题的时候很需要,直接上干货如下: vConsole:一个轻量.可拓展.针对手机网页的前端开发者调试面板. 下载 vConsole 的最新版本.(不要直接 ...

  4. 【转】fiddler-http协议调试代理工具

    题目有一些激进.但是在前端界打滚了这么多年,fiddler一直都是陪着我走过来了.它就是一个抓包神奇,代理神器.它的厉害之处,我简单地说一下,希望你们看了以后,能点上32个赞. 1.fiddler为何 ...

  5. VUE前端项目配置代理解决跨域问题

    VUE前端项目配置代理解决跨域问题 问题如下,经常在本地调试接口出现这种问题 解决方式1:Chrome 的扩展插件 以前使用Chrome 的扩展插件,但是有时候还是会出现莫名其妙的问题. 需要梯子才行 ...

  6. Safari 前端开发调试 iOS 完美解决方案

    转http://www.2cto.com/kf/201403/283404.html afari 前端开发调试 iOS 完美解决方案 2014-03-05      0个评论    来源:Safari ...

  7. vConsole--针对手机网页的前端 console 调试面板。

    一个针对手机网页的前端 console 调试面板. 简介 vConsole 是一个网页前端调试面板,专为手机 web 页面量身设计,帮助开发者更为便捷地进行开发调试工作. 手机预览 http://we ...

  8. 手机前端开发调试利器 – vConsole

    我们在开发手机版网页的时候,常常会出现下面的情景: (1) 开发时,在自己电脑上运行得好好的,在手机上打开就挂了,但是手机上又看不到error log: (2) 上线后,某用户表示页面失灵,但我们自己 ...

  9. HTTP Analyzer——WEB调试代理

    HTTP Analyzer 是一个实时的web调试代理,如果你对Fiddler不陌生的话,HTTP Analyzer 就是和Fiddler具备一样功能的调试代理. 推荐这个软件而不推荐Fiddler的 ...

  10. 前端读者 | 前端开发者调试面板vConsole

    来着微信团队开源的一个调试工具,[GitHub地址]https://github.com/Tencent/vConsole 一个轻量.可拓展.针对手机网页的前端开发者调试面板. 特性 查看 conso ...

随机推荐

  1. Blazor静态服务端呈现(静态SSR)身份认证

    本文介绍 Blazor 静态服务端呈现(静态 SSR)模式下,用户登录身份认证是如何实现的. 1. SSR 简介 SSR 是服务器侧呈现,HTML 是由服务器上的 ASP.NET Core 运行时生成 ...

  2. Servlet——Tomcat8以前解决中文乱码问题

    Request 请求参数中文乱码问题         // 1.解决乱码问题:POST,getReader() request.setCharacterEncoding("UTF-8&quo ...

  3. ChatGPT转发工具-springboot

    背景 国内服务器无法访问openAI接口,我想过有两种实现方式 代理工具类似 tinyproxy.nginx 开发一个转发客户端(java.python都可以实现),提供一个api接口 源码 gith ...

  4. Passwords

    详见 此处 Header File 0*)1190*+0**0).0970)/0)/111105000

  5. KPTI——可以缓解“熔断” (Meltdown) 漏洞的内核新特性

    Linux 内核修复办法:内核页表隔离KPTl(kernel page table isolation) 每个进程一张页表变成两张:运行在内核态和运行在用户态时分别使用各自分离的页表 Kernel页表 ...

  6. manim边学边做--无向图

    无向图属于数学中的图论这一学科, 所谓无向图G,就是由顶点集V(非空集合)和边集E(由V中元素构成的无序二元组的集合)组成的图, 可表示为G=(V,E). 在无向图中,边没有方向,即从顶点A到顶点B的 ...

  7. These dependencies were not found: * core-js/modules/es.array.push.js in ./node_modules/@babel/runtime/helpers/esm/regeneratorRuntime.js

    yarn add core-js  安装core-js包 : 出现这个问题的原因:因为vue-admin-template的package.json里没写这个包core-js,然后再咱们yarn装包的 ...

  8. rancher发布nacos server docker 失败

    使用rancher发布nacos server 时报错 进入镜像查看日志发现报错No DataSource set 检查了好几遍环境变量已经全都配了,最后发现在nohup.out文件中指出没有找到na ...

  9. 洛谷P1219八皇后问题

    [USACO1.5] 八皇后 Checker Challenge 题目链接 题目描述 一个如下的 \(6 \times 6\) 的跳棋棋盘,有六个棋子被放置在棋盘上,使得每行.每列有且只有一个,每条对 ...

  10. C/C++ volatile restrict 用法

    volatile和restrict是C和C++中的两个关键字,都用于指示编译器优化. volatile volatile的本意是"易变的",用法和const一样: volatile ...