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插件开发实践的更多相关文章

  1. vue插件开发实践与要点

    其实就跟组件差不多意思,组件也可以实现相关的效果,但要在用到的地方都引用插件就可以全局注册,不需引用 试着撸一个插件,有2个功能,提示和对话框 网上找了个toast插件的代码,改了改,扩展加了个dia ...

  2. PyCharm插件开发实践-PyGetterAndSetter

    背景需求 在面向对象的设计中,典型如Java语言,为了控制对象属性的修改入口,我们常用的做法是把属性设置为private,然后通过getter和setter方法访问.修改该属性. 但是在Pthon语言 ...

  3. 原生Javascript插件开发实践

    前言 之前公司设计的网站比较混乱,很多地方不统一,其中一个就是弹出层,导致这个原因是因为,公司的UI换了好几个人,而他们每个人做出来的都不太一样.最近公司开始整顿这个问题,对于统一的这种东西当然是做成 ...

  4. pinpoint插件开发实践

    plugin基本结构 一个plugin主要由三部分构成,插件类增强定义(ProfilerPlugin接口实现).插件描述定义(TraceMetadataProvider接口实现).增强类拦截器实现(A ...

  5. 🏆【Java技术专区】「开发实战专题」Lombok插件开发实践必知必会操作!

    前言 在目前众多编程语言中,Java 语言的表现还是抢眼,不论是企业级服务端开发,还是 Andorid 客户端开发,都是作为开发语言的首选,甚至在大数据开发领域,Java 语言也能占有一席之地,如Ha ...

  6. Eclipse插件开发_学习_00_资源帖

    一.官方资料 1.eclipse api 2.GEF Developer's Guide 二. 精选资料 1.开发 Eclipse 插件 2.Eclipse, RCP, Plugin and OSGi ...

  7. Hexo 相册实践

    灵感 想给自已的blog添加一个相册功能.给生活中的点点滴滴留影记录.搜寻网络上给Next主题添加相册功能的基本上没有,只能重头到尾开始一点点的实践.    大致的想法:  1. 相册展示类似于归档一 ...

  8. 适合 JS 新手学习的开源项目——在 GitHub 学编程

    作者:HelloGitHub-小鱼干 这里是 HelloGitHub 的<GitHub 上适合新手的开源项目>系列的最后一篇,系列文章: C++ 篇 Python 篇 Go 篇 Java ...

  9. 【转】.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 ...

随机推荐

  1. Android学习--探究服务(二)

    服务的基本用法 定义服务: 我们需要先创建服务,我们要使用就的利用一个类去继承它,然后重写它的几个方法,具体的我们看下面的代码: 我们重写了下面三个方法: * onCreate()           ...

  2. Codeforces #430 Div2 D

    #430 Div2 D 题意 给出一些数,每次操作先将所有数异或一个值,再求这些数中没有出现过的最小的非负整数. 分析 对于更新操作,对于 \(x\) 所有为 \(1\) 的位给相应层添加一个标记,当 ...

  3. 算法-插入排序(Insertion sorting)

    本文由@呆代待殆原创,转载请注明出处. 简介:这是一个比较算法,形象的描述插入算法就和我们玩扑克的时候我们排列手牌的方式是一样的,最开始我们手上什么都没有,然后我们每摸一张牌就把它插入到正确的位置,直 ...

  4. Ubuntu 终端常用命令

    文件目录类 1.建立目录:mkdir 目录名 2.删除空目录:rmdir 目录名 3.无条件删除子目录: rm -rf 目录名 4.改变当前目录:cd 目录名 (进入用户home目录:cd ~;进入上 ...

  5. [BZOJ1833][ZJOI2010]Count数字计数(DP)

    数位DP学傻了,怎么写最后都写不下去了. 这题严格上来说应该不属于数位DP?只是普通DP加上一些统计上的判断吧. 首先复杂度只与数的位数$\omega$有关,所以怎么挥霍都不会超. f[i][j][k ...

  6. [Atcoder Regular Contest 060] Tutorial

    Link: ARC060 传送门 C: 由于难以维护和更新平均数的值: $Average->Sum/Num$ 这样我们只要用$dp[i][j][sum]$维护前$i$个数中取$j$个,且和为$s ...

  7. CLR探索系列:Windbg+SOS动态调试分析托管代码

    http://blog.csdn.net/garyye/article/details/4788070   在使用VS进行托管应用程序的调试的时候,有的时候总感觉有些力不从心.譬如查看一个托管堆或者计 ...

  8. android线程及线程池

    众所周知,在UI系统中进行一些耗时操作,都会导致卡顿现象,因为一次刷新在16ms,如果当次操作过了这个时间,那么用户就能感觉到明显的卡顿,甚至引起ANR . 对于这种情况,一般都是再起一个线程,进行一 ...

  9. React脚手架

    所谓脚手架,是指一套基础的开发环境,你只需要简单的配置或者无需配置,就可以直接开发自己的业务代码,而无需劳神在搭建环境上. 比较出名的就是facebook自己出的的脚手架:create-react-a ...

  10. 【转载】游戏并发编程的讨论 & Nodejs并发性讨论 & 语法糖术语

    知乎上这篇文章对于游戏后端.性能并发.nodejs及scala等语言的讨论,很好,值得好好看. https://www.zhihu.com/question/21971645 经常了解一些牛逼技术人员 ...