fiddler修改host,协议,请求转发

使用Fiddler代理工具,可轻松修改请求的Host、协议及转发,极大简化公众号开发中微信SDK的调试过程,避免频繁打包上传,提高开发效率。
fiddler根据请求路径,修改host,协议,和请求转发

在进行公众号开发的时候,要调试微信的sdk,比如支付,必须要配置备案安全域名,并且在微信里面用域名打开,这样调试就很麻烦,因为每次修改都要打包文件,然后上传到服务器。

fiddler是一个神器,设置代理后,可以监控到所有的请求,并且随意修改,不管是请求数据还是响应数据,连host,也能修改

如果没有用过,先看看这篇,配置好https证书(https://www.jianshu.com/p/724097741bdf),然后再进行下面的操作

通过 Fiddler > Rules > Customize Rules 打开脚本,然后进行编辑,找到 OnBeforeRequest函数,在里面加入下面的代码

if (oSession.host=="baidu.com") { // 如果请求的域名是baidu.com
			// 如果请求的url里面包含匹配的字符串
			if (oSession.uriContains("/pages/")
					||oSession.uriContains("/subPages/pages/")
					||oSession.uriContains("/js/")
					||oSession.uriContains("/chunk/")) {
				
				oSession["ui-color"] = "blue"; // 修改捕获到的请求显示的颜色
				oSession.host = "192.168.10.45:10086" // 修改请求的host为同局域网的IP和端口
				/*
				// 此段代码容易报错,文件最好不要选C盘
				// 保存日志到文件
				oSession.utilDecodeResponse();//消除保存的请求可能存在乱码的情况
				var fso;
				var file;
				fso = new ActiveXObject("Scripting.FileSystemObject");
				//文件保存路径,可自定义
				file = fso.OpenTextFile("C:\\Sessions.txt",8 ,true, true);
				//file.writeLine("Response code: " + oSession.responseCode);
				file.writeLine("oSession.fullUrl " + oSession.fullUrl);
				file.writeLine("\n");
				file.close();
				*/
				if (oSession.isHTTPS) {
					// 修改协议,把 https 修改为 http ,因为局域网是http,https访问不到
					oSession.oRequest.headers.UriScheme = "http"
				}
			}
			
        }

然后可以设置代理到fiddler,只要请求域名是 baidu.com,就会把请求的host修改,非常方便公众号调试。

文档:https://www.kancloud.cn/cyyspring/test/936258#_17

<think>我们正在处理用户关于Fiddler修改服务器时间的查询。根据引用内容,我们可以找到几种方法: 1. 引用[2]和[4]提供了在Fiddler中添加自定义列来显示请求时间的方法,但并没有直接修改服务器时间。 2. 引用[3]提到可以使用AutoResponder功能来捕获请求并提供自定义响应,包括修改响应头(如Date头)或状态码。 3. 引用[1]提到断点功能可以截获请求或响应,然后修改请求或响应报文。 因此,修改服务器时间(实际上是修改响应中的Date头)有两种主要方法: 方法1:使用断点(Breakpoints)功能,在响应返回前修改Date头。 方法2:使用AutoResponder功能,创建规则来替换响应,并在替换的响应中设置自定义的Date头。 由于用户明确询问“修改服务器时间”,这里指的是修改HTTP响应中的服务器时间(即响应头中的Date字段)。注意,我们无法真正修改远程服务器的时间,只能修改经过Fiddler的响应中的Date头。 下面分别介绍两种方法: 方法一:使用断点修改响应头中的Date 步骤: 1. 打开Fiddler,在菜单栏选择“Rules” > “Automatic Breakpoints” > “After Responses”(或者直接按F11键设置响应断点,或者按Alt+F11设置所有响应断点)。 2. 触发目标请求(例如在浏览器中访问目标网址)。 3. 当请求Fiddler截获后,在Fiddler的会话列表中选择该会话,然后在右侧的“Inspectors”标签页中查看响应。 4. 在响应头部分,找到“Date”头,修改其值为你想要的时间(格式必须符合HTTP日期格式,如:Wed, 21 Oct 2025 07:28:00 GMT)。 5. 点击“Run to Completion”按钮(或按F5键)继续发送修改后的响应。 方法二:使用AutoResponder功能 步骤: 1. 打开Fiddler,在右侧面板选择“AutoResponder”标签页。 2. 点击“Add Rule”按钮,在规则编辑器中设置匹配的URL(例如:*example.com*,或者具体URL)。 3. 在“Rule Editor”区域,选择“Create New Response...”然后选择“200_HTML_DateReplace”模板(或者手动编辑响应)。 4. 在生成的响应中,你可以编辑响应头,将Date头修改为你想要的值。 5. 勾选“Enable rules”和“Unmatched requests passthrough”选项,然后保存规则。 6. 当请求匹配该规则时,Fiddler将返回你预设的响应,其中包含修改后的Date头。 注意:AutoResponder方法需要预先设定响应,而断点方法可以动态修改。 另外,引用[3]提到AutoResponder可以避免手动处理每个请求,适合批量修改。 根据引用[4]中关于时间格式的代码,我们可以知道在FiddlerScript中处理时间的方法,但上述两种方法无需编写脚本即可完成。如果需要自动化修改所有响应的Date头,则可以通过FiddlerScript实现。 方法三:使用FiddlerScript修改所有响应的Date头(高级) 步骤: 1. 打开Fiddler,点击菜单栏的“Rules” > “Customize Rules...”(或按Ctrl+R),打开FiddlerScript编辑器。 2. 在OnBeforeResponse函数中添加代码,修改响应头的Date字段。例如: static function OnBeforeResponse(oSession: Session) { // 修改所有响应的Date头 oSession.oResponse["Date"] = "Wed, 21 Oct 2025 07:28:00 GMT"; } 3. 保存脚本(Ctrl+S),然后Fiddler会自动重新加载脚本。之后所有经过Fiddler的响应都会将Date头修改为指定的值。 注意:这种方法会修改所有响应的Date头,如果只想修改特定请求,可以添加条件判断(如根据oSession.host或oSession.url等)。 总结:用户可以根据需求选择断点(临时修改)、AutoResponder(针对特定URL)或FiddlerScript(全局修改)来实现修改服务器时间(响应Date头)的目的。 相关问题: 1. 如何通过Fiddler修改HTTP请求中的时间戳? 2. Fiddler的断点功能还有哪些应用场景? 3. 如何编写FiddlerScript来自定义修改请求和响应? 4. Fiddler的AutoResponder功能如何保存自定义响应?</think>### Fiddler修改服务器响应时间的方法 在Fiddler修改服务器响应时间(即HTTP响应头中的`Date`字段),本质是通过拦截并修改响应报文实现的。以下是三种常用方法: --- #### 方法1:使用响应断点(推荐临时修改) 1. **启用响应断点** - 菜单栏选择 `Rules` → `Automatic Breakpoints` → `After Responses`(或按`Alt`+`F11`) - 触发目标请求(如浏览器访问目标URL) 2. **修改Date字段** 在会话列表选中目标请求 → 右侧 `Inspectors` → `Headers` 标签 → 找到响应头的 `Date` 字段,修改为自定义时间(必须符合RFC格式,如 `Wed, 21 Oct 2025 07:28:00 GMT`)[^1]。 3. **放行请求** 点击 `Run to Completion` 按钮(或按`F5`)发送修改后的响应。 > ⚠️ 此方法需手动操作每个请求,适合临时调试。 --- #### 方法2:使用AutoResponder(批量修改) 1. **创建规则** 右侧面板 → `AutoResponder` → 点击 `Add Rule` → 在 `Rule Editor` 输入匹配URL(如 `*example.com*`) 2. **设置自定义响应** - 勾选 `Enable rules` - 选择 `Create New Response...` → 编辑响应头: ```http HTTP/1.1 200 OK Date: Wed, 21 Oct 2025 07:28:00 GMT // 修改此处时间 Content-Type: text/html ... ``` 3. **保存并生效** 请求匹配该URL时,Fiddler自动返回含自定义时间的响应[^3]。 --- #### 方法3:FiddlerScript脚本(全局自动修改) 1. **打开脚本编辑器** `Rules` → `Customize Rules`(或按 `Ctrl`+`R`)→ 打开 `CustomRules.js` 2. **添加脚本代码** 在 `OnBeforeResponse` 函数中插入: ```javascript static function OnBeforeResponse(oSession: Session) { if (oSession.HostnameIs("target-domain.com")) { // 指定目标域名 oSession.oResponse.headers["Date"] = "Wed, 21 Oct 2025 07:28:00 GMT"; } } ``` 3. **保存生效** 按 `Ctrl`+`S` 保存,所有匹配请求的响应头自动修改[^2][^4]。 --- ### 关键注意事项 1. **时间格式必须合法** HTTP日期格式必须为 `Day, DD Mon YYYY HH:MM:SS GMT`(如 `Tue, 15 Nov 2024 12:30:00 GMT`)。 2. **影响范围** 修改仅对经过Fiddler代理的流量生效,真实服务器时间不变。 3. **应用场景** - 测试客户端时间敏感逻辑(如证书过期、缓存策略) - 模拟不同时区服务响应 - 调试时间依赖型业务逻辑 > 通过以上方法,可灵活控制经Fiddler转发的响应中的服务器时间标识[^1][^3]。 --- ### 相关问题 1. 如何用Fiddler修改HTTP响应状态码(如404→200)? 2. Fiddler断点功能与AutoResponder有何区别? 3. 如何通过FiddlerScript批量修改请求头参数? 4. 修改响应时间后客户端可能出现哪些兼容性问题? --- [^1]: 断点功能允许拦截并修改请求/响应报文,实现动态调试 [^2]: FiddlerScript可通过脚本编程实现自动化修改 [^3]: AutoResponder提供静态响应替换能力,无需编码 [^4]: 响应头修改需符合HTTP协议规范,否则可能导致客户端解析错误
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值