当前位置: 首页 > news >正文

使用Whistle自定义接口返回内容:Mock流式JSON数据全解析

一.mock接口返回数据流程

定位目标接口

在Whistle的Network面板中找到需要Mock的接口,右键点击请求信息,选择COPY -> URL复制完整URL,确保URL路径精确到具体接口。
**在这里插入图片描述**


准备Mock数据

  1. 点击对应接口,在右侧面板切换到response标签页,点击body查看原始返回内容
  2. 进入Whistle的Values管理页面,创建新文件
    • 建议文件名与接口关联(如api-data-mock.json
    • 文件格式根据接口类型选择(JSON数据推荐使用.json后缀)
  3. 将原始返回内容粘贴到新文件中,按需修改数据字段
    • 支持修改静态值、添加测试数据、调整结构
    • 特别注意保留数据原有格式和关键字段

配置基础Mock规则

https://example.com/api/data file://mockData.json
  • 左侧为目标接口 URL(支持通配符)
  • 右侧指向 Values 中创建的 Mock 文件
  • 保存规则后立即生效

二.处理流式 JSON 数据的特殊要求

问题分析

按上述步骤设置mock数据后,查看接口返回内容,body已经成功变成设置的值,但是页面无法正常加载出来,仔细研究发现是响应头的问题,流式json数据对应的头部是
content-type:text/event-stream;charset=UTF-8
但是直接mock返回的数据对应的头部是
content-type:text/plain;charset=UTF-8


解决方案:增加自定义响应头

明确问题所在后,只需要再增加头部配置即可,values新建个文件(如contentHeader.json),存储相应头部信息(根据实际修改)

{"server": "whistle","content-type": "text/event-stream; charset=utf-8","content-length": 13316,"access-control-allow-credentials": true,"access-control-allow-origin": "xxx"
}

然后在rules中增加规则
https://example.com/api/data resHeaders://{contenHeader.json}
再次触发接口,就可以正常返回并记载流式json数据了。


最终配置

# 设置响应头
https://example.com/api/data resHeaders://{contenHeader.json}
# 设置mock数据
https://example.com/api/data file://{mockData.json}

注意:如果rules中还有重定向接口url的规则,一定要将需要mock数据的接口的规则放在最前面,否则会被覆盖无法生效

http://www.lryc.cn/news/590410.html

相关文章:

  • SQL性能分析
  • C# --- 单例类错误初始化 + 没有释放资源导致线程泄漏
  • 【Linux】如何使用nano创建并编辑一个文件
  • 动态规划题解_打家劫舍【LeetCode】
  • 编译原理第四到五章(知识点学习/期末复习/笔试/面试)
  • 部分排序算法的Java模拟实现(复习向,非0基础)
  • AWS ML Specialist 考试备考指南
  • 【Qt】麒麟系统安装套件
  • uniapp写好的弹窗组件
  • OWASP Top 10 攻击场景实战
  • 在 CentOS 8 上彻底卸载 Kubernetes(k8s)
  • 01 启动流程实例
  • ICMR-2025 | 杭电多智能体协作具身导航框架!MMCNav:基于MLLM的多智能体协作户外视觉语言导航
  • 钱包核心标准 BIP32、BIP39、BIP44:从助记词到多链钱包的底层逻辑
  • STM32F4踩坑小记——使用HAL库函数进入HardFault
  • 蓝光三维扫描技术:手机闪光灯模块全尺寸3D检测的高效解决方案
  • HTML基础知识 二(创建容器和表格)
  • 在虚拟环境中复现论文(环境配置)
  • Class<T> 类传递及泛型数组
  • SSH连接复用技术在海外云服务器环境下的稳定性验证与优化方案
  • 动态规划的核心性质——最优化原理 (Principle of Optimality)
  • git的diff命令、Config和.gitignore文件
  • Python编程基础(六)| 用户输入和while循环
  • slurm设置用户节点和分区权限
  • Telink的GPIO
  • 系统思考场景应用
  • Node.js基础用法
  • 3DGS之COLMAP
  • iOS 抓包工具选择与配置指南 从零基础到高效调试的完整流程
  • VR 污水厂初体验:颠覆传统认知​