Fiddler4插件开发实践
Fiddler4 是一款 巴拉巴拉。。。。。
连接在这:http://www.telerik.com/fiddler
开发文档在这:http://docs.telerik.com/fiddler/Extend-Fiddler/ExtendWithDotNet
-------分割线----------------------
我们聊一聊你打算开发怎么样的插件,因为Fiddler 提供的接口相对比较坑(→_→) 所以明确要开发一款什么插件很重要
下面是科普时间: Fiddler4 公开接口有以下几类
IFiddlerExtension,IAutoTamper,IAutoTamper2,IAutoTamper3
1、这几个接口都是面向一个全局的插件,
2、插件出现的位置和Log,TimeLine同级
3、插件编译成dll只能放到 Scripts文件夹下
Inspector2,IResponseInspector2,IRequestInspector2
1、这几个接口是面向于单独一个连接
2、插件会出现Inspector这个菜单下 和 Headers,TextView 同级
3、插件编译成dll只能放到 Inspectors 文件夹下
IHandleExecAction 这个接口可以让你的控件接收到命令行传来的命令,这个接口
ISessionExporter,ISessionImporter
1、顾名思义 批量对请求经行导入导出操作。例如批量导出为txt之类的
2、位置出现在右键菜单Save-Selectd Session-中 和File-ImportSession 弹出的菜单中
3、dll需要放到ImportExport中
ps:位置如图:
ps2:如果你同时在一个dll中写2中插件,Fiddler会根据你的dll在 Scripts还是Inspector下还是ImportExport 只能加载其中1种
ps3:Inspector 文件夹指的是: C:\Users\XXXX\Documents\Fiddler2\Inspectors 和C:\Program Files (x86)\Fiddler2\Inspectors
Scripts文件夹指的是:C:\Users\XXXX\Documents\Fiddler2\Scripts和C:\Program Files (x86)\Fiddler2\Scripts
ImportExport文件夹指的是:C:\Users\XXXX\Documents\Fiddler2\ImportExport和C:\Program Files (x86)\Fiddler2\ImportExport
fix: 在Documents\Fiddler2\下可能只有 Scripts文件夹没有Inspectors与ImportExport 自己新建便可
fix:不算接口的接口 如果你想对Fiddler4的主菜单动手那么:http://docs.telerik.com/fiddler/Extend-Fiddler/AddMenuItems
-------分割线----------------------
准备工作:
1、安装fiddler4 手动doge脸
2、vs10以上(我演示用的vs13)
3、开启fiddler debug相关功能
在这个位置输入:
1 prefs set fiddler.debug.extensions.showerrors True 2 prefs set fiddler.debug.extensions.verbose True
正式开始:
1、新建一个C#类库项目(fix 下图注意选 net4 )
2、对项目右键添加Fiddler4.exe引用
3、在AssemblyInfo.cs文件中添加特定的属性[assembly: Fiddler.RequiredVersion("4.6.2.0")] (如下图 注因为我用的Fiddler4 版本是4.6.2.0)
4、新建类继承与前文中暴露出来的接口 !!!!注意新建!!!!这个类不能有命名空间
如下代码:
1 public class MaiCheSettingView : IFiddlerExtension 2 { 3 public void OnLoad() 4 { 5 var view = new TestView(); 6 view.Dock = DockStyle.Fill; 7 var tab = new TabPage(); 8 tab.Text = "相关设置"; 9 tab.Controls.Add(view); 10 FiddlerApplication.UI.tabsViews.TabPages.Add(tab); 11 } 12 13 public void OnBeforeUnload() 14 { 15 //throw new System.NotImplementedException(); 16 } 17 }
其中TestView是用户控件
5、新建一个用户控件(Winform的东西)-项目右键添加用户控件
6、编译然后 将你的dll 拷贝到 Scripts中试试,看看成功了么?
偶对了 如果觉得每次拷贝太复杂 可以尝试一下操作:
copy "$(TargetPath)" "%userprofile%\Documents\Fiddler2\Scripts\$(TargetFilename)"
--------------------------分割线-------------------------------------------
关于调试 可以直接使用vs附加进程