架构师_程序员_码农网

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 100107|回复: 49

[资料] .net/c# 开发fiddler教程[附源码]

[复制链接]
发表于 2018-9-29 11:15:56 | 显示全部楼层 |阅读模式
fiddler版本:

Progress Telerik Fiddler Web Debugger
v5.0.20182.28034 for .NET 4.6.1
Built: 2018年6月27日


QQ截图20180929103653.jpg
1:首先,我们用vs2017新建一个.net 4.0的类库项目(这里是错误的,下面会说,需要建4.6.1的项目,否则编译生成会失败),如下图:

QQ截图20180929103158.jpg

由于我的fiddler版本比较高,对.net版本的要求会高一些,在.net 4.0版本编译生成会报错如下:

1>------ 已启动全部重新生成: 项目: fiddler-plugin-demo, 配置: Debug Any CPU ------
1>C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\15.0\Bin\Microsoft.Common.CurrentVersion.targets(2106,5): warning MSB3274: 未能解析主引用“Fiddler”,因为它是针对“.NETFramework,Version=v4.6.1”框架生成的。该框架版本高于当前目标框架“.NETFramework,Version=v4.0”。
1>C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\15.0\Bin\Microsoft.Common.CurrentVersion.targets(2106,5): warning MSB3268: 未能解析主引用“Fiddler”,因为它对框架程序集“System.Net.Http, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a”有间接依赖关系,而在当前目标框架中未能解析该程序集。“.NETFramework,Version=v4.0”。若要解决此问题,请移除引用“Fiddler”,或将应用程序的目标重新指向包含“System.Net.Http, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a”的框架版本。
1>C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\15.0\Bin\Microsoft.Common.CurrentVersion.targets(2106,5): warning MSB3275: 未能解析主引用“Fiddler”,因为它对程序集“Analytics, Version=1.0.20182.27266, Culture=neutral, PublicKeyToken=2b2cea67609c9510”具有间接依赖关系,而该程序集是针对“.NETFramework,Version=v4.5”框架生成的。该框架版本高于当前目标框架“.NETFramework,Version=v4.0”。
1>C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\15.0\Bin\Microsoft.Common.CurrentVersion.targets(2106,5): warning MSB3275: 未能解析主引用“Fiddler”,因为它对程序集“Newtonsoft.Json, Version=11.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed”具有间接依赖关系,而该程序集是针对“.NETFramework,Version=v4.5”框架生成的。该框架版本高于当前目标框架“.NETFramework,Version=v4.0”。
1>C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\15.0\Bin\Microsoft.Common.CurrentVersion.targets(2106,5): warning MSB3275: 未能解析主引用“Fiddler”,因为它对程序集“GA.Analytics.Monitor, Version=1.0.20182.27266, Culture=neutral, PublicKeyToken=2b2cea67609c9510”具有间接依赖关系,而该程序集是针对“.NETFramework,Version=v4.5”框架生成的。该框架版本高于当前目标框架“.NETFramework,Version=v4.0”。
1>C:\Users\itsvse_pc\Documents\Visual Studio 2017\Projects\fiddler-plugin-demo\fiddler-plugin-demo\Properties\AssemblyInfo.cs(37,12,37,19): error CS0246: 未能找到类型或命名空间名“Fiddler”(是否缺少 using 指令或程序集引用?)
1>C:\Users\itsvse_pc\Documents\Visual Studio 2017\Projects\fiddler-plugin-demo\fiddler-plugin-demo\DemoExtention.cs(1,7,1,14): error CS0246: 未能找到类型或命名空间名“Fiddler”(是否缺少 using 指令或程序集引用?)
1>C:\Users\itsvse_pc\Documents\Visual Studio 2017\Projects\fiddler-plugin-demo\fiddler-plugin-demo\DemoExtention.cs(10,34,10,45): error CS0246: 未能找到类型或命名空间名“IAutoTamper”(是否缺少 using 指令或程序集引用?)
1>C:\Users\itsvse_pc\Documents\Visual Studio 2017\Projects\fiddler-plugin-demo\fiddler-plugin-demo\DemoExtention.cs(19,44,19,51): error CS0246: 未能找到类型或命名空间名“Session”(是否缺少 using 指令或程序集引用?)
1>C:\Users\itsvse_pc\Documents\Visual Studio 2017\Projects\fiddler-plugin-demo\fiddler-plugin-demo\DemoExtention.cs(24,45,24,52): error CS0246: 未能找到类型或命名空间名“Session”(是否缺少 using 指令或程序集引用?)
1>C:\Users\itsvse_pc\Documents\Visual Studio 2017\Projects\fiddler-plugin-demo\fiddler-plugin-demo\DemoExtention.cs(29,45,29,52): error CS0246: 未能找到类型或命名空间名“Session”(是否缺少 using 指令或程序集引用?)
1>C:\Users\itsvse_pc\Documents\Visual Studio 2017\Projects\fiddler-plugin-demo\fiddler-plugin-demo\DemoExtention.cs(34,46,34,53): error CS0246: 未能找到类型或命名空间名“Session”(是否缺少 using 指令或程序集引用?)
1>C:\Users\itsvse_pc\Documents\Visual Studio 2017\Projects\fiddler-plugin-demo\fiddler-plugin-demo\DemoExtention.cs(39,44,39,51): error CS0246: 未能找到类型或命名空间名“Session”(是否缺少 using 指令或程序集引用?)
========== 全部重新生成: 成功 0 个,失败 1 个,跳过 0 个 ==========

QQ截图20180929110059.jpg

解决办法就是改成.net 4.6.1的版本即可!

2:在解决方案资源管理器中添加fiddler.exe的引用,我的fiddler安装目录为:C:\Users\itsvse_pc\AppData\Local\Programs\Fiddler,如下图:

QQ截图20180929104221.jpg

3:设置插件所运行的fiddler最低版本

在项目的AssemblyInfo.cs(也可以在你代码的其他任何地方)文件中添加Fiddler.RequiredVersion 特性(Attribute)

QQ截图20180929104337.jpg

4:新建一个fiddler 选项卡ui控件

需要添加 System.Windows.Forms 程序集的引用

首先在项目中添加一个用户控件取名为TestControl.cs(随意),如下图所示:

QQ截图20180929104828.jpg

然后在用户控件上随意放置一个Button控件,并写一行简单的单击事件代码:

QQ截图20180929105009.jpg

5:新建一个DemoExtention扩展类

DemoExtention类继承IAutoTamper接口,IAutoTamper 接口继承了IFiddlerExtension接口,所有实现了IAutoTamper 接口的插件将会在每一个http/https 请求或响应时被调用,所以可以用来劫持或修改http/https 请求响应数据。

注意:这个接口的方法是在后台被调用,非UI线程,如果想要更新UI,可以使用Invoke 或者 BeginInvoke 方法来更新UI。IAutoTamper 的所有方法可能会在OnLoad事件之前就执行。

代码如下:



6:Fiddler加载插件

我们编程生成以后,把Debug目录下面的fiddler-plugin-demo.dll和fiddler-plugin-demo.pdb两个文件,复制到我们fiddler安装目录的scrip{过滤}ts文件夹,

我自己的就是:C:\Users\itsvse_pc\AppData\Local\Programs\Fiddler\scrip{过滤}ts 文件夹

QQ截图20180929111014.jpg

最后,我们重启打开fiddler,可以在选项卡上面看到我们的控件了,如下图:

QQ截图20180929111043.jpg

7:使插件自动部署到fiddler插件目录下

我们每次修改插件,需要重新把dll复制到scrip{过滤}ts文件夹太麻烦了,我们可以通过vs的生成事件来解决这个问题,我们重新编译生成,vs会自动把我们的dll复制到scrip{过滤}ts目录下面,在后期生成事件命令行中填写如下命令:




如下图:

QQ截图20180929111449.jpg

经测试,可以正常使用。

最后,附上源码:

游客,如果您要查看本帖隐藏内容请回复





上一篇:hlml教学视频
下一篇:十分发达发达郭德纲的
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
 楼主| 发表于 2018-9-30 21:22:48 | 显示全部楼层
开启fiddler debug功能

1. 在fiddler命令行工具中开启debug功能


2. 显示错误和异常信息

prefs set fiddler.debug.extensions.showerrors True

3. 显示log信息

prefs set fiddler.debug.extensions.verbose True

开启log显示后,开发者输出的log信息显示在fiddler右侧的log tab的界面中。
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
 楼主| 发表于 2020-12-5 21:46:47 | 显示全部楼层
urlreplace id.itsvse.com id.test.itsvse.com
重定向命令
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
发表于 2021-5-27 18:49:03 | 显示全部楼层

这个很精华·不错!前来学习·膜拜!
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
发表于 2018-9-29 15:57:45 | 显示全部楼层
这个很精华·不错!前来学习·膜拜!
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
发表于 2018-9-29 17:10:56 | 显示全部楼层
这个不错,来学习
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
发表于 2018-9-30 00:48:21 | 显示全部楼层
谢谢分享哦
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
发表于 2018-9-30 10:09:25 | 显示全部楼层
谢谢分享
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
发表于 2018-9-30 23:56:38 | 显示全部楼层
不错,不错。。。
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
发表于 2018-10-1 16:51:24 | 显示全部楼层
前来学习·膜拜!
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
发表于 2018-11-30 12:28:53 | 显示全部楼层
45333333333344444444444444444
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
发表于 2018-12-1 14:44:20 | 显示全部楼层
看下这个代码怎么样了
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

免责声明:
码农网所发布的一切软件、编程资料或者文章仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。

Mail To:help@itsvse.com

QQ|手机版|小黑屋|架构师 ( 鲁ICP备14021824号-2 )|网站地图

GMT+8, 2024-3-28 17:21

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表