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相关功能
在这个位置输入:

prefs set fiddler.debug.extensions.showerrors True
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、新建类继承与前文中暴露出来的接口 !!!!注意新建!!!!这个类不能有命名空间
如下代码:
public class MaiCheSettingView : IFiddlerExtension
{
public void OnLoad()
{
var view = new TestView();
view.Dock = DockStyle.Fill;
var tab = new TabPage();
tab.Text = "相关设置";
tab.Controls.Add(view);
FiddlerApplication.UI.tabsViews.TabPages.Add(tab);
} public void OnBeforeUnload()
{
//throw new System.NotImplementedException();
}
}
其中TestView是用户控件
5、新建一个用户控件(Winform的东西)-项目右键添加用户控件

6、编译然后 将你的dll 拷贝到 Scripts中试试,看看成功了么?
偶对了 如果觉得每次拷贝太复杂 可以尝试一下操作:
copy "$(TargetPath)" "%userprofile%\Documents\Fiddler2\Scripts\$(TargetFilename)"

--------------------------分割线-------------------------------------------
关于调试 可以直接使用vs附加进程

Fiddler4插件开发实践的更多相关文章
- vue插件开发实践与要点
其实就跟组件差不多意思,组件也可以实现相关的效果,但要在用到的地方都引用插件就可以全局注册,不需引用 试着撸一个插件,有2个功能,提示和对话框 网上找了个toast插件的代码,改了改,扩展加了个dia ...
- PyCharm插件开发实践-PyGetterAndSetter
背景需求 在面向对象的设计中,典型如Java语言,为了控制对象属性的修改入口,我们常用的做法是把属性设置为private,然后通过getter和setter方法访问.修改该属性. 但是在Pthon语言 ...
- 原生Javascript插件开发实践
前言 之前公司设计的网站比较混乱,很多地方不统一,其中一个就是弹出层,导致这个原因是因为,公司的UI换了好几个人,而他们每个人做出来的都不太一样.最近公司开始整顿这个问题,对于统一的这种东西当然是做成 ...
- pinpoint插件开发实践
plugin基本结构 一个plugin主要由三部分构成,插件类增强定义(ProfilerPlugin接口实现).插件描述定义(TraceMetadataProvider接口实现).增强类拦截器实现(A ...
- 🏆【Java技术专区】「开发实战专题」Lombok插件开发实践必知必会操作!
前言 在目前众多编程语言中,Java 语言的表现还是抢眼,不论是企业级服务端开发,还是 Andorid 客户端开发,都是作为开发语言的首选,甚至在大数据开发领域,Java 语言也能占有一席之地,如Ha ...
- Eclipse插件开发_学习_00_资源帖
一.官方资料 1.eclipse api 2.GEF Developer's Guide 二. 精选资料 1.开发 Eclipse 插件 2.Eclipse, RCP, Plugin and OSGi ...
- Hexo 相册实践
灵感 想给自已的blog添加一个相册功能.给生活中的点点滴滴留影记录.搜寻网络上给Next主题添加相册功能的基本上没有,只能重头到尾开始一点点的实践. 大致的想法: 1. 相册展示类似于归档一 ...
- 适合 JS 新手学习的开源项目——在 GitHub 学编程
作者:HelloGitHub-小鱼干 这里是 HelloGitHub 的<GitHub 上适合新手的开源项目>系列的最后一篇,系列文章: C++ 篇 Python 篇 Go 篇 Java ...
- 【转】.NET(C#):浅谈程序集清单资源和RESX资源 关于单元测试的思考--Asp.Net Core单元测试最佳实践 封装自己的dapper lambda扩展-设计篇 编写自己的dapper lambda扩展-使用篇 正确理解CAP定理 Quartz.NET的使用(附源码) 整理自己的.net工具库 GC的前世与今生 Visual Studio Package 插件开发之自动生
[转].NET(C#):浅谈程序集清单资源和RESX资源 目录 程序集清单资源 RESX资源文件 使用ResourceReader和ResourceSet解析二进制资源文件 使用ResourceM ...
随机推荐
- Xamarin XAML语言教程基本视图ContentViewg构架范围框架
Xamarin XAML语言教程基本视图ContentViewg构架范围框架 ContentView视图基本上有三个作用,下面依次介绍. (1)范围框架:ContentView视图可以构建一个范围框架 ...
- Hibernate 配置文件precision与scale
Oracle使用标准.可变长度的内部格式来存储数字.这个内部格式精度可以高达38位. NUMBER数据类型可以有两个限定符,如: column NUMBER ( precision, scale) 表 ...
- [ARC100]E:Or Plus Max(FZT)
https://arc100.contest.atcoder.jp/tasks/arc100_c 一个很自然的想法是,对于每个K求出i or j=k的所有a[i]+a[j]的最大值ans[k],答案就 ...
- [Codeforces 23D] Tetragon
Brief Intro: 给3条相同长度的边的中点,问是否存在一个严格凸四边形 Algorithm: 明显只要求出一个点就能利用对称性算出其他点的坐标 设中点K,L,M分别在边AB,BC,CD上,易知 ...
- CodeForces - 981E Addition on Segments
考虑每个点i在什么情况下会成为最大值. 当选的区间子集是 包含i的区间的一个子集的时候,i肯定会是最大值. 所以我们就可以用这种方法得到所有点的可能的最大值是多少... 也就是说,最后的局面可以仅由一 ...
- 【bitset】poj2443 Set Operation
模板题.S[i][j]表示i是否存在于第j个集合里.妈蛋poj差点打成poi(波兰无关)是不是没救了. #include<cstdio> #include<bitset> us ...
- 【二分图】【最大匹配】【匈牙利算法】CODEVS 2776 寻找代表元
裸的匈牙利,存模板. #include<cstdio> #include<vector> #include<cstring> using namespace std ...
- openresty总结
协程 1.例如当获取的数据没有前后依赖关系时,可以使用ngx.thread.spawn和ngx.thread.wait同时从数据库不同的库.表或者不同来源(mysql,redis等)获取数据. htt ...
- 线程协作-CountDownLatch
CountDownLatch允许一个或多个线程等待其他线程完成操作.
- [Java基础] java多线程关于消费者和生产者
多线程: 生产与消费 1.生产者Producer生产produce产品,并将产品放到库存inventory里:同时消费者Consumer从库存inventory里消费consume产品. 2.库存in ...