前端开发中使用whistle代理工具

代理工具有很多像‌比较有名的Charles、‌Fiddler,最近发现了一款宝藏代理工具whistle,看到团队中有很多人在用,刚开始还有点不太理解,前端我们一般代理接口解决跨域这些不都是直接在webpack、vite中配置代理规则就行了。

直到使用了whistle之后发现真香,提供的功能也比较强大,下面就分享几个在前端开发中实际使用的场景。

注意需要依赖本地node环境,谷歌浏览器中一般会配合SwitchyOmega插件来使用,具体的一些基础配置可以参考whistle官方文档。

接口数据mock

开发中如果后端接口还未开发完,往往需要我们自己mock接口数据,利用whistle可以很方便地将项目中某个接口代理到本地的json文件,这样想要什么数据我们直接修改json文件就行了。

还比如测试环境中某个接口挂了导致整体流程没法往下走,后端一时半会还处理不好,我们就可以直接将出问题的接口代理成本地的json文件中的数据,让使用流程能顺畅往下走。

ruby 复制代码
cafe123.cn/api/user file:///c:/Users/cafehaus/Desktop/user.json

本地放在桌面上的user.json文件

json 复制代码
{
    "name": "ZHOU",
    "age": 18
}

接口代理

接口代理在日常开发中比较常用,一般用来临时解决跨域问题,可以用来代替webpack、vite中的devServer配置,或者直接调用后端开发本地起的服务:

bash 复制代码
127.0.0.1:8080/api/ www.cafe123.cn

前端静态资源代理

这个一般是项目中某些场景限定了只能特定的域名才能访问,比如公共的统一登录只能配置了的白名单域名才能访问,那我们本地开发时直接用localhost、127.0.0.1下去访问就会报错,这个时候我们就可以把项目中的接口请求地址设置成特定的域名,然后域名下的js、css、html、png...这些静态资源代理到本地服务上,这样就能实现访问的前端代码还是本地的:

bash 复制代码
/cafe123.cn/.*?.(html|js|css|png|jpg)/ http://127.0.0.1:3000

移动端请求抓包

移动端项目需要在手机上调试或排查问题时,也是可以用whistle来实现代理抓包。不过这个一般测试用得比较多,配置相对复杂一点,具体可以参考whistle官方文档。

本地 localhost 127.0.0.1 不同端口之间代理

在whistle的代理面板中默认是看不到127.0.0.1、localhost的请求的,但在实际开发中我们有可能需要转发一个本地服务的需求,这个时候就需要从127.0.0.1:xxxx代理到127.0.0.1:zzzz,如果你直接在whistle中按这样的端口配置代理会发现是没用的,并不能将本地某个端口代理到另一个端口上。

解决办法是需要修改一下浏览器SwitchyOmega插件的不代理地址列表配置:

bash 复制代码
# 默认是
127.0.0.1
::1
localhost

# 需要修改成下面的(注意直接清空默认的设置实测也是没有效果的)
<-loopback>
相关推荐
程序员老赵30 分钟前
Docker 部署青龙面板:轻松搭建定时任务管理平台
前端·docker·开源
Swot31 分钟前
Asciidoctor 公式数字下标错位问题:原因分析与解决方案
前端
Swot31 分钟前
leo-editor 中将 Markdown 内容转成 asciidoc 格式
前端
狒狒AI43 分钟前
Remotion / GSAP+Three / HyperFrames / Skia 四栈实测:代码渲染知识视频的选栈方法(附开源技能)
前端·人工智能·aigc
修炼的dance1 小时前
浏览器里导出H.265,8.5秒和55.5秒差在硬件
前端
补码缩写1 小时前
WebCodecs选编码器,探测之后还要验解码和播放
前端
大文说跨境1 小时前
亚马逊多账号管理浏览器怎么选?云登/紫鸟/AdsPower 对比
java·前端·自动化
hunter_0761 小时前
iOS 首页复杂嵌套滚动技术方案:头部固定 + 网格滚动 + Tab 吸顶 + 每 Tab 独立下拉刷新
前端
CoderYanger1 小时前
Java EE 进阶:4.Spring Web MVC 入门(第一弹)
java·开发语言·前端·spring·面试·java-ee·mvc
用户2788607285671 小时前
fallback 会盖掉平台提示词:system、空数组和 systemAppend 的差别
前端·后端