资阳市网站建设_网站建设公司_悬停效果_seo优化
2025/12/30 9:23:52 网站建设 项目流程

Fiddler Script 基于 JScript.NET 编写,核心是通过修改 OnBeforeResponse(响应前)/OnBeforeRequest(请求前)事件来拦截并修改网络请求/响应,以下是分功能实现方案:


一、文本替换(拦截响应并替换指定文本)

功能说明

拦截指定域名/接口的响应内容,将其中的目标文本替换为自定义内容(比如把页面中的“天气”替换为“气象”,或把接口返回的“success”替换为“fail”)。

完整脚本

// 文本替换核心脚本
// 1. 先判断响应是否为文本类型(HTML/JSON/JS等),避免二进制文件乱码
if (oSession.responseCode == 200 && oSession.oResponse.MIMEType.Contains("text") || oSession.oResponse.MIMEType.Contains("json")) {// 2. 指定需要替换的域名(可根据需求修改,*为通配符)if (oSession.HostnameIs("www.weather.com") || oSession.uriContains("weather")) {// 3. 读取响应内容var responseBody = oSession.GetResponseBodyAsString();// 4. 文本替换:把“晴”替换为“晴天”,可自定义替换规则var newBody = responseBody.replace(/晴/g, "晴天");// 示例2:替换JSON中的文本,如把"message":"success"替换为"message":"error"// newBody = responseBody.replace(/"message":"success"/g, "\"message\":\"error\"");// 5. 将替换后的内容写回响应oSession.utilSetResponseBody(newBody);}
}

实操步骤

  1. 打开 Fiddler → 点击右侧「Script」标签(或按 Ctrl+R);
  2. 找到 OnBeforeResponse 函数,将上述脚本粘贴到函数内;
  3. 保存脚本(Ctrl+S),访问目标网站/接口,即可看到文本被替换。

关键说明

  • replace(/晴/g, "晴天")/g 表示全局替换,不加则只替换第一个匹配项;
  • 若替换中文乱码:在脚本开头添加 oSession.utilDecodeResponse();(解码响应后再替换)。

二、图片替换(拦截图片请求并替换为本地/网络图片)

功能说明

拦截指定图片的请求(如网站logo、天气图标),将响应替换为本地图片或其他网络图片,常用于测试图片加载异常、自定义图片展示等场景。

完整脚本

// 图片替换核心脚本
function OnBeforeRequest(oSession) {// 1. 拦截指定图片请求(匹配图片URL关键词,如weather-icon.png)if (oSession.uriContains("weather-icon.png")) {// 方式1:替换为本地图片(推荐,需填写本地图片绝对路径)var localImagePath = "C:\\test\\custom-icon.png"; // 注意路径用双反斜杠oSession["x-replywithfile"] = localImagePath; // 用本地文件替换响应// 方式2:替换为网络图片(需先下载图片到本地,或转发请求)// oSession.url = "https://example.com/custom-icon.png"; // 重定向到新图片URL}
}// 补充:若替换后图片显示异常,在OnBeforeResponse中添加解码
function OnBeforeResponse(oSession) {if (oSession.uriContains("weather-icon.png")) {oSession.utilDecodeResponse(); // 解码响应,避免图片损坏}
}

实操步骤

  1. 准备替换用的本地图片(如 custom-icon.png),记录绝对路径;
  2. 在 Fiddler Script 的 OnBeforeRequest 函数中粘贴上述脚本,修改图片路径;
  3. 保存脚本后,访问包含目标图片的页面,即可看到图片被替换。

关键说明

  • x-replywithfile:Fiddler 内置指令,直接用本地文件替换响应,支持PNG/JPG/GIF等格式;
  • 若替换网络图片:需确保目标图片可访问,且格式与原图片一致(如原图片是PNG,替换的也需是PNG)。

三、会话列表颜色筛选(按规则给会话标色,快速筛选)

功能说明

根据会话的域名、状态码、请求类型等规则,给 Fiddler 会话列表中的请求标上不同颜色(如天气接口标绿色、404请求标红色),方便快速识别目标请求。

完整脚本

// 会话列表颜色筛选核心脚本
function OnBeforeRequest(oSession) {// 重置默认颜色oSession["ui-color"] = "";// 规则1:天气相关接口标绿色(#00FF00)if (oSession.uriContains("weather") && oSession.HostnameIs("devapi.qweather.com")) {oSession["ui-color"] = "green"; // 支持英文颜色/十六进制颜色值}// 规则2:404响应标红色(需在OnBeforeResponse中判断)if (oSession.responseCode == 404) {oSession["ui-color"] = "#FF0000";}// 规则3:图片请求标黄色if (oSession.oRequest.headers.Exists("Accept") && oSession.oRequest["Accept"].Contains("image")) {oSession["ui-color"] = "yellow";}
}

实操步骤

  1. 在 Fiddler Script 的 OnBeforeRequest(或 OnBeforeResponse)函数中粘贴脚本;
  2. 自定义颜色规则(如修改关键词、颜色值),保存脚本;
  3. 发起网络请求,Fiddler 会话列表中符合规则的请求会自动标色。

常用颜色值

颜色 英文值 十六进制值
红色 red #FF0000
绿色 green #00FF00
黄色 yellow #FFFF00
蓝色 blue #0000FF
灰色 gray #808080

四、脚本使用注意事项

  1. 脚本生效:修改脚本后需保存(Ctrl+S),新发起的请求才会生效;
  2. 恢复默认:删除自定义脚本,保存后即可恢复 Fiddler 原始行为;
  3. 性能影响:复杂脚本(如大量正则替换)可能降低 Fiddler 效率,建议仅针对目标域名生效;
  4. 乱码问题:处理文本/图片前,先调用 oSession.utilDecodeResponse() 解码响应。

总结

  1. 文本替换:在 OnBeforeResponse 中读取响应文本,用 replace 替换后写回;
  2. 图片替换:在 OnBeforeRequest 中用 x-replywithfile 指令替换为本地图片;
  3. 会话标色:通过设置 oSession["ui-color"],按域名/状态码等规则给会话标色,提升筛选效率。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询