AI 摘要
文章提出通过 HTTPS 中间人代理方式,在客户端与后端之间伪造数字证书并拦截请求,实现在不修改项目代码的情况下按需 mock 接口数据。其核心是在代理服务器中区分真实转发与直接构造响应,从而灵活控制哪些接口返回 mock 数据,实现了对项目零侵入的接口模拟方案。
通过中间人拦截并模拟接口,可以实现对项目无侵入的 mock 数据
demo: https://github.com/QiYuOr2/mitm-mock
现状
- 前后端并行开发时,需要模拟数据,直接在项目中 mock 对项目的侵入比较严重
- 需要单独控制某个接口或某些接口使用 mock 数据,因此直接使用后端的 mock 接口不合适
核心思路

伪造数字证书
配置代理服务器后客户端在发送 https 请求之前会向代理服务器发送 connect 请求,代理服务器监听 connect 请求,根据 connect 请求中的域名伪造数字证书
请求目标服务器(无需 Mock 的请求)
使用伪造的数字证书创建 Server,将请求连接到该 Server(通过 hostname:port),在该 Server 中转发请求到目标服务器,最后将请求到的数据发回客户端
拦截并 Mock 数据
在转发请求那一步时,可以不对请求进行转发,直接将自己 Mock 的数据填入 response 中发回客户端
参考
文章地址:https://blog.qiyuor2.me/2022/mite-mock
本作品由柒宇采用CC BY-NC-SA 4.0进行许可,转载请注明出处。