在开发/测试过程中有多台设备(PC/手机/模拟器)通过 Fiddler 代理上网时,如何方便地从满屏纷飞的 Session 中筛选出自己关心的那台设备的请求?
通过 FiddlerScript 扩展,在 Session 的右键弹出菜单中添加一项,作为「查看所有设备请求」和「查看单个设备请求」的切换开关。
设计操作流程:
实现思路:
实现步骤:
OnBeforeRequest
前添加如下代码:
// 是否过滤单设备请求标志 public static var gs_FilterDevice: boolean = false; // 显示请求的设备的 ClientIP public static var gs_FilterClientIP: String = null; static function IsUnMatchClientIP(oS:Session):Boolean { return (oS.m_clientIP != gs_FilterClientIP); } public static ContextAction("开/关过滤单设备请求") function ToggleDeviceFilter(oSessions: Fiddler.Session[]){ if (gs_FilterDevice) { gs_FilterDevice = false; return; } var oS: Session = FiddlerApplication.UI.GetFirstSelectedSession(); if (null == oS) return; if (!gs_FilterDevice) { gs_FilterDevice = true; } gs_FilterClientIP = oS.clientIP; // 删除当前已显示的非所关心设备的请求 FiddlerApplication.UI.actSelectSessionsMatchingCriteria(IsUnMatchClientIP); FiddlerApplication.UI.actRemoveSelectedSessions(); }
OnBeforeRequest
函数里添加如下代码,用于在「查看单个设备请求」状态时将不关心的设备产生的新请求隐藏:
if (gs_FilterDevice && oSession.m_clientIP != gs_FilterClientIP) { oSession["ui-hide"] = "true"; }
最终效果如下图:
当前做法有如下缺陷,尚未想到好办法解决:
我使用的完整最新的 CustomRules.js 文件我上传到了一个 Gist 里,详见:https://gist.github.com/mzlogin/3c5f9781c5bedff3fcfb,如果想直接使用可以复制脚本内容后放置到「我的文档/Fiddler 2/Scripts/CustomRules.js」,也可以在此目录下使用 git 抓取我的最新定制 js 文件。
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有