新建dll程序,选择类库
image-1657788261256

首先需要去NuGet安装Fiddler core的核心依赖

新建一个类,这里假定 MaiCheSettingView,继承IFiddlerExtension
则会重载几个函数这里只说要用到的:
OnLoad() 插件启动时会调用,你可以在里面做一些初始化操作
OnBeforeUnload 在插件卸载之前调用的函数
BeforeResponse事件,这个是当响应体到达之前调用

解释一下BeforeResponse的过程:
正常的http请求过程:
image-1657787312198

Fiddler的请求简单过程:
image-1657787500109

知道其原理后,我们只需要做一件事,实现BeforeResponse事件以修改服务器返回的内容

插件有界面,可以新建一个用户界面
右击项目>添加>用户控件
image-1657787663682

在插件加载事件内加载界面

public class MaiCheSettingView : IFiddlerExtension
{
   public void OnLoad()
    {
    	//添加界面 界面可以写你想写的功能 ,这里不讲
       view = new UserControl1();
        view.Dock = DockStyle.Fill;
        var tab = new TabPage();
        tab.Text = "插件界面";
        tab.Controls.Add(view);
        FiddlerApplication.UI.tabsViews.TabPages.Add(tab);
        view.Click += usercontrol_Click;
        //添加捕获http响应事件
        FiddlerApplication.BeforeResponse += FiddlerApplication_BeforeResponse;
    }
    
       public void OnBeforeUnload()
    {
      
    }

}

实现FiddlerApplication_BeforeResponse 函数

//在收到请求结果之前捕获执行
  private void FiddlerApplication_BeforeResponse(Session oSession)
    {
    	//Session 中包含很多东西,服务器请求响应体 假设我想对指定url进行捕获修改然后返回
        
        //判断这次请求返回的URL是不是我想要的网站请求
        if (oSession.fullUrl.IndexOf("https://www.destiny.cool/api/getUser") <= -1)
        {
            return;
        }
        //数据解码
        oSession.utilDecodeResponse();
        
        //获取服务器返回的响应体
        //oSession.responseBodyBytes是字节  GetResponseBodyAsString是字符串
        //SaveResponseBody 是保存响应体 SaveResponse是保存整个响应请求
        string resp =  oSession.GetResponseBodyAsString();
        //得到响应体后,假设就可以做你想做的,做完了再返回给客户端
        oSession.utilSetResponseBody(resp);
        
    }

然后编译DLL,打开Fiddler 的安装位置将DLL放到Scripts目录下,重启Fiddler插件加载成功!