这个问题与 TheChange 's Question 相关。
要求发生了变化,所以我需要在 Fiddler 中使用一个扩展来完成相同的任务。
如何使用 C# 创建 Fiddler 除外的扩展?
我可以在 C# 中创建一个 dll - 我还尝试了旧的 .net 2.0 编译器。我首先尝试在 Program-File 文件夹中使用我的扩展名,然后在 MyDocuments 文件夹中使用我的扩展名(提琴手网站上提到的两个) .
如果我从 Fiddler-extensions 下载了一个 extension-dll,它可以在 Fiddler 重新启动后使用。
如果我在 Fiddler 运行时尝试替换我的 .dll 文件,Windows 会告诉我 .dll 已被程序使用并且现在无法更改。扩展未显示在扩展选项卡中。
现在我处于死胡同,不知道我现在应该搜索什么,因为其他人似乎没有这个问题。
也许这需要回答我的问题:
使用:MS Visual C# 2008 Express Edition 我的项目还与 Fiddler 和 System.Windows.Forms 链接(没有找到 Fiddler 上提到的 System.Windows.WinForms)。
在我的扩展中使用[assembly: Fiddler.RequiredVersion("2.2.7.0")]
,我的 Fiddler 是 2.2.8.x。
如果这对答案感兴趣:我也使用 IFiddlerExtension-Help 描述来获取必要的代码。
我的主要问题是 Fiddler 没有给我任何注释或失败,但似乎找到了扩展但由于某种原因无法使用它。
using System;
using System.Windows.Forms;
using Fiddler;
[assembly: Fiddler.RequiredVersion("2.2.7.0")]
namespace validate_js
{
public interface IFiddlerExtension
{
// Called when Fiddler User Interface is fully available
void OnLoad();
// Called when Fiddler is shutting down
void OnBeforeUnload();
}
public interface IAutoTamper : IFiddlerExtension
{
// Called before the user can edit a request using the Fiddler Inspectors
void AutoTamperRequestBefore(Session oSession);
// Called after the user has had the chance to edit the request using the Fiddler Inspectors, but before the request is sent
void AutoTamperRequestAfter(Session oSession);
// Called before the user can edit a response using the Fiddler Inspectors, unless streaming.
void AutoTamperResponseBefore(Session oSession);
// Called after the user edited a response using the Fiddler Inspectors. Not called when streaming.
void AutoTamperResponseAfter(Session oSession);
// Called Fiddler returns a self-generated HTTP error (for instance DNS lookup failed, etc)
void OnBeforeReturningError(Session oSession);
}
public class Violin : IAutoTamper
{
string sUserAgent = "";
public Violin()
{
sUserAgent = "Violin";
}
public void OnLoad()
{
string strResponse;
FiddlerApplication.Log.LogString("S&T-Script wird ausgeführt.");
Fiddler.FiddlerApplication.BeforeResponse += delegate(Fiddler.Session oS)
{
strResponse = oS.GetResponseBodyAsString(); // safe BodyContent in strResponse
if (System.String.Compare(strResponse, "getElementbyID", true) == 0)
{
FiddlerApplication.Log.LogString("getElementbyID found - could have a different attitude in IE 8. Please check");
}
};
}
public void OnBeforeUnload()
{
}
public void AutoTamperRequestBefore(Session oSession)
{
oSession.oRequest["User-Agent"] = sUserAgent;
}
public void AutoTamperRequestAfter(Session oSession) { }
public void AutoTamperResponseBefore(Session oSession) { }
public void AutoTamperResponseAfter(Session oSession) { }
public void OnBeforeReturningError(Session oSession) { }
}
}
我会感谢任何可能的帮助...