如何使用Fiddler或其他工具自动拦截并修改HTTP请求参数
可行解决方案
下面提供两种经过验证、不会篡改原始请求头的方案,可按需选择:
方案1:Fiddler 自动重写规则(系统级,覆盖所有本机请求)
你已经验证过Fiddler手动修改可行,只需配置内置的自定义规则即可实现自动修改,全程保留所有原始请求头:
- 打开Fiddler,依次点击顶部菜单栏
Rules > Customize Rules打开脚本编辑器 - 找到
OnBeforeRequest函数,在函数内部加入以下逻辑:
if (oSession.uriContains("google.com/search") && oSession.QueryString["count"] == "20") { oSession.QueryString["count"] = "40"; }
- 保存脚本后规则自动生效,所有符合匹配条件的请求都会自动修改参数,原有请求头完全保留。
方案2:Tampermonkey 油猴脚本(浏览器级,轻量无需开代理)
如果仅需要修改浏览器内的网页请求,用油猴脚本拦截页面的XMLHttpRequest和fetch请求修改参数即可,完全在页面原生上下文执行,不会修改任何默认请求头:
- 安装Tampermonkey扩展后,新建用户脚本
- 替换为以下示例代码,可根据你的实际匹配域名、参数名调整:
// ==UserScript== // @name 修改搜索count参数 // @match *://*.google.com/* // @grant none // @run-at document-start // ==/UserScript== // 拦截XMLHttpRequest const originalOpen = XMLHttpRequest.prototype.open; XMLHttpRequest.prototype.open = function(method, url) { if (url.includes('search?count=20')) { url = url.replace('count=20', 'count=40'); } return originalOpen.apply(this, arguments); }; // 拦截fetch请求 const originalFetch = window.fetch; window.fetch = function(input, init) { if (typeof input === 'string' && input.includes('search?count=20')) { input = input.replace('count=20', 'count=40'); } return originalFetch.apply(this, arguments); };
- 保存脚本后刷新对应网页即可生效,所有请求头和原生请求完全一致。
内容的提问来源于stack exchange,提问作者yoss
相关产品推荐
相关产品推荐

