这个问题依赖于TheChange's Question。
要求已更改,因此我需要在Fiddler中使用具有相同任务的扩展名。
我可以在C#中创建一个dll - 我也尝试了旧的.net 2.0编译器..我首先尝试在Program-File文件夹中使用我的扩展名,然后在MyDocuments文件夹中使用(在Fiddler上提到的两个) - 网站)。
如果我从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) { }
}
}
我会尽可能地帮助你......
答案 0 :(得分:2)
您正在重新声明命名空间中的IAutoTamper
和IFiddlerExtension
接口,这些接口“隐藏”Fiddler命名空间中的实际接口。
如果您从代码中删除这些界面重新声明(只留下您的Violin
类),您会发现您的DLL工作正常。