本文目录导读:

- 方法 1:使用浏览器开发者工具(无代码,最推荐)
- 方法 2:使用第三方拦截工具(如 Fiddler、Charles、mitmproxy)
- 方法 3:使用浏览器扩展(如 Lokaltest、Requestly、Tampermonkey)
- 方法 4:命令行工具(curl + 代理)
- 总结建议
- 注意事项
(通常用于调试、测试或开发)主要有 3 种方法,具体取决于你的技术背景和工具偏好:
方法 1:使用浏览器开发者工具(无代码,最推荐)
适用场景: 快速临时修改、调试 API 返回数据
操作步骤(以 Chrome 为例):
- 打开开发者工具:按
F12或Ctrl+Shift+I(Mac:Cmd+Option+I)。 - 切换到 Network(网络)标签。
- 找到目标请求:刷新页面,在请求列表中找到你要修改响应的那个请求(如 API 接口)。
- 右键点击该请求,选择 “Override content”(覆盖内容) 或 “Copy as fetch”。
- Override 模式:Chrome 会允许你本地修改并保存响应内容,下次加载页面时会自动使用修改后的内容。
- 编辑响应内容:在弹出的编辑器中修改 JSON、HTML 或文本内容。
- 刷新页面:此时浏览器会使用你修改后的响应(注意:仅对当前页面有效,刷新后失效)。
缺点:仅作用于当前浏览器标签,且修改不持久(除非启用 Override 并保存到本地文件)。
方法 2:使用第三方拦截工具(如 Fiddler、Charles、mitmproxy)
适用场景: 需要持久化修改、跨浏览器/客户端、或修改 HTTPS 流量
以 Fiddler(Windows)为例:
- 安装并打开 Fiddler。
- 启用 HTTPS 解密:
Tools -> Options -> HTTPS -> Decrypt HTTPS traffic(会安装证书,信任即可)。 - 设置响应替换规则:
Rules -> Autolatic Response(自动响应)。- 添加规则:将你想要拦截的 URL 拖拽到规则列表。
- 修改响应体:选择
Add...-> 输入你要替换的内容(如 JSON 字符串)。 - 应用:勾选规则,然后刷新页面。
以 Charles(Mac/Windows)为例:
- 可使用
Tools -> Rewrite或Map Local功能。 - Map Local:将远程响应映射到你本地的文件(如
data.json)。
优点:全局生效,可持久化,支持正则匹配。
方法 3:使用浏览器扩展(如 Lokaltest、Requestly、Tampermonkey)
使用 Lokaltest (推荐)
- 安装:Chrome 应用商店搜索 “Lokaltest”。
- 操作:打开该扩展,点击
Add Rule->API Mock,输入 URL 匹配规则,填写你想返回的 JSON 内容。 - 特点:无需重启页面,修改即时生效,支持动态数据。
使用 Tampermonkey(需要写代码)
- 安装 Tampermonkey 扩展。
- 新建用户脚本,借助
GM_xmlhttpRequest或window.fetch的拦截逻辑来实现。 - 示例代码(拦截特定 API 返回 JSON):
// ==UserScript==
// @name Modify API Response
// @namespace http://tampermonkey.net/
// @version 0.1
// @description Modify /api/data response
// @author You
// @match https://example.com/*
// @grant none
// ==/UserScript==
(function() {
const originalFetch = window.fetch;
window.fetch = function(...args) {
if (args[0].includes('/api/data')) {
return Promise.resolve(new Response(JSON.stringify({ new: 'data' }), {
headers: { 'Content-Type': 'application/json' }
}));
}
return originalFetch.apply(this, args);
};
})();
方法 4:命令行工具(curl + 代理)
适用场景: 自动化测试、批量修改
-
启动一个本地代理(如 mitmproxy):
mitmproxy --listen-port 8888
-
编写 Python 脚本(mitmproxy 插件)修改响应:
from mitmproxy import http def response(flow: http.HTTPFlow): if "api.example.com/data" in flow.request.pretty_url: flow.response.text = '{"modified": true}' -
将浏览器或系统代理设置为
0.0.1:8888,流量即可被修改。
总结建议
| 需求场景 | 推荐工具 |
|---|---|
| 临时调试单个 API | Chrome Override (F12→Network→右键→Override内容) |
| 需要持久化、多端生效 | Fiddler / Charles |
| 不想装软件、快速测试 | Lokaltest 浏览器扩展 |
| 需要编写复杂逻辑 | Tampermonkey / mitmproxy |
注意事项
- HTTPS 问题:拦截工具(Fiddler/Charles/mitmproxy)需要安装并信任其自签名证书,否则无法解密 HTTPS 流量。
- 修改后验证:在 Network 面板中确认返回的响应是你修改后的内容。
- 不要用于侵权:仅用于自己设备的本地调试或测试,不要非法篡改他人网站或服务。
如果你需要针对特定工具(如 Fiddler 或 Charles)的详细步骤,可以告诉我,我可以补充给你。
标签: 网络
版权声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。