whistle 一个神奇的前端调试工具(抓包\代理工具)

2024-01-17 14:30

本文主要是介绍whistle 一个神奇的前端调试工具(抓包\代理工具),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

在进行前端开发过程中,我们常常需要对一些接口进行处理,以及当后端接口没有弄好需要我们mock一些假数据,针对这些场景,我们就可以使用 whistle 来解决。
首先,我们要知道能满足我们需求的工具有很多,例如:charles、fiddler等。但是这些工具有个非常不友好的点,那就是它们需要 付费使用,当然我们一般都是通过一些方法,来免费使用的。这里就不说了。
  1. 安装whistle

  1. 首先我们要确保我们有安装node。

node -v

出现以下内容,就说明我们本地有安装node。

反之,我们就需要对node进行安装
1. Windows或Mac系统,访问 https://nodejs.org/,安装 LTS版本的Node,默认安装即可。
2. Linux下推荐使用源码安装: 从 Node官网下载最新版的 Source Code(或者用wget命令下载),解压文件(tar -xzvf node-vx.y.z.tar.gz)后进入解压后的根目录(node-vx.y.z),依次执行./configure、./make和./make install。

tips:(Windows系统可能需要重新打开cmd)
  1. 使用包管理器安装

我们这里以npm为例,当然如果有安装yarn、pnpm等的话可以使用其他的包管理器进行安装。
npm install -g whistle
当我们使用 w2 help能有正常的信息展示就说明了,whistle安装成功了。
  1. whistle命令

启动whistle:
$ w2 start
Tips: 如果要防止其他人访问,可以在启动时加上登录用户名和密码 -n name -w password。
重启whsitle:
$ w2 restart
停止whistle:
$ w2 stop
修改 whistle 监听的端口,默认为 8899
w2 start -p port
开启全局代理 (适用于无法安装Proxy SwitchyOmega等浏览器插件的朋友)
w2 proxy
关闭全局代理
w2 proxy off
  1. 配置whistle工作环境

  1. 浏览器插件安装Proxy SwitchyOmega

Tips: 若无法打开「chrome 应用商店」的朋友,可以使用上面的全局代理的方式进行启动whistle。
对插件进行配置
  1. 安装根证书(捕获HTTPS请求)

正常启动后使用本地端口打开即可

这里以mac为例
找到证书下载地方,点击进行安装。
打开证书管理界面,找到带有 whistle 的字样的证书并对其进行「始终信任」
  1. 简单配置规则进行实践

  1. 设置响应头,临时允许跨域(用于解决后端暂未配置cors的时候,临时调试)

# 自动添加cors头 可以在服务器没有配置cors的时候,进行临时调试
https://www.baidu.com/ resCors://{resCors.json}
  1. 对js增加一些调试信息(推荐使用VConsole,对H5、小程序以及移动端进行调试)

# 对一些页面预追加VConsole,便于移动端进行调试。
https://www.baidu.com/ jsPrepend://{log.js}
# https://cdn.bootcdn.net/ajax/libs/vConsole/3.15.0/vconsole.min.js 将这个js保存然后# 初始化VConsole
new VConsole();
手机端等的环境进行调试,可能就需要安装证书了。我们点击右上角的online 查看本地的 IPv4
然后,找到和当前电脑处于同一个局域网Wi-Fi的手机,对wifi进行配置
代理方式:手动
代理服务地址:10.*.*.*(上述代理的 IPv4
代理端口:8899(重要,重要,重要,此处代理的是whistle的启动端口)
然后手机访问 rootca.pro 下载证书,进行安装
ios 下:设置 => 通用 => 证书信任设置,打开刚刚安装的证书的开关
安卓: 设置=> 搜索证书 => 从存储设备安装证书 =〉进行安装即可
  1. mock响应json数据

# mock测试需要的一些接口实际还未好但是开发确需要的假数据
https://www.baidu.com/api resBody://{res.json}
  1. 线上js资源使用本地js进行替换

# a.js => b.js 其中b.js 可以是 http://localhost:4001/output/module/* 等形式
/passport.baidu.com/passApi/js/ {log.js}

当然,whistle还有很多调试的用法,这里就不一一列举了。

  1. 可能出现的问题

  • 本地代理 出现这种情况时,可以考虑将localhost 改为 127.0.0.1

这篇关于whistle 一个神奇的前端调试工具(抓包\代理工具)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/616331

相关文章

在IntelliJ IDEA中高效运行与调试Spring Boot项目的实战步骤

《在IntelliJIDEA中高效运行与调试SpringBoot项目的实战步骤》本章详解SpringBoot项目导入IntelliJIDEA的流程,教授运行与调试技巧,包括断点设置与变量查看,奠定... 目录引言:为良驹配上好鞍一、为何选择IntelliJ IDEA?二、实战:导入并运行你的第一个项目步骤1

从入门到精通详解LangChain加载HTML内容的全攻略

《从入门到精通详解LangChain加载HTML内容的全攻略》这篇文章主要为大家详细介绍了如何用LangChain优雅地处理HTML内容,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录引言:当大语言模型遇见html一、HTML加载器为什么需要专门的HTML加载器核心加载器对比表二

基于Python实现简易视频剪辑工具

《基于Python实现简易视频剪辑工具》这篇文章主要为大家详细介绍了如何用Python打造一个功能完备的简易视频剪辑工具,包括视频文件导入与格式转换,基础剪辑操作,音频处理等功能,感兴趣的小伙伴可以了... 目录一、技术选型与环境搭建二、核心功能模块实现1. 视频基础操作2. 音频处理3. 特效与转场三、高

基于Python开发一个图像水印批量添加工具

《基于Python开发一个图像水印批量添加工具》在当今数字化内容爆炸式增长的时代,图像版权保护已成为创作者和企业的核心需求,本方案将详细介绍一个基于PythonPIL库的工业级图像水印解决方案,有需要... 目录一、系统架构设计1.1 整体处理流程1.2 类结构设计(扩展版本)二、核心算法深入解析2.1 自

Python办公自动化实战之打造智能邮件发送工具

《Python办公自动化实战之打造智能邮件发送工具》在数字化办公场景中,邮件自动化是提升工作效率的关键技能,本文将演示如何使用Python的smtplib和email库构建一个支持图文混排,多附件,多... 目录前言一、基础配置:搭建邮件发送框架1.1 邮箱服务准备1.2 核心库导入1.3 基础发送函数二、

基于Python实现一个图片拆分工具

《基于Python实现一个图片拆分工具》这篇文章主要为大家详细介绍了如何基于Python实现一个图片拆分工具,可以根据需要的行数和列数进行拆分,感兴趣的小伙伴可以跟随小编一起学习一下... 简单介绍先自己选择输入的图片,默认是输出到项目文件夹中,可以自己选择其他的文件夹,选择需要拆分的行数和列数,可以通过

Python使用pip工具实现包自动更新的多种方法

《Python使用pip工具实现包自动更新的多种方法》本文深入探讨了使用Python的pip工具实现包自动更新的各种方法和技术,我们将从基础概念开始,逐步介绍手动更新方法、自动化脚本编写、结合CI/C... 目录1. 背景介绍1.1 目的和范围1.2 预期读者1.3 文档结构概述1.4 术语表1.4.1 核

Python使用OpenCV实现获取视频时长的小工具

《Python使用OpenCV实现获取视频时长的小工具》在处理视频数据时,获取视频的时长是一项常见且基础的需求,本文将详细介绍如何使用Python和OpenCV获取视频时长,并对每一行代码进行深入解析... 目录一、代码实现二、代码解析1. 导入 OpenCV 库2. 定义获取视频时长的函数3. 打开视频文

Linux中压缩、网络传输与系统监控工具的使用完整指南

《Linux中压缩、网络传输与系统监控工具的使用完整指南》在Linux系统管理中,压缩与传输工具是数据备份和远程协作的桥梁,而系统监控工具则是保障服务器稳定运行的眼睛,下面小编就来和大家详细介绍一下它... 目录引言一、压缩与解压:数据存储与传输的优化核心1. zip/unzip:通用压缩格式的便捷操作2.

sqlite3 命令行工具使用指南

《sqlite3命令行工具使用指南》本文系统介绍sqlite3CLI的启动、数据库操作、元数据查询、数据导入导出及输出格式化命令,涵盖文件管理、备份恢复、性能统计等实用功能,并说明命令分类、SQL语... 目录一、启动与退出二、数据库与文件操作三、元数据查询四、数据操作与导入导出五、查询输出格式化六、实用功