fiddlerプラグイン開発二
7790 ワード
この記事では、Filldderプラグインの開発における主なインタフェースとクラスについて説明します.
1.IFIddlerExtensionインタフェース
開発するカスタムプラグインにUIインタフェースがある場合は、IFIddlerExtensionインタフェースを実装する必要があります.あなたのプログラムセットでIFIddlerExtensionインタフェースを実装したパブリッククラス(public class)は、Fiddler起動時にロードされます. OnLoadメソッドは、Fiddlerのロードが完了し、UIが完全に使用可能になったときに呼び出されます.このメソッドでは、メニュー項目、タブページ、または他のUI要素をFiddler UIに安全に追加できます. OnBeforeUnloadメソッドは、すべてのプラグインを閉じてアンインストールするときに実行されます.
2.IAutoTamperインタフェース
IAutoTamperインタフェースはIFIddlerExtensionインタフェースを継承し、IAutoTamperインタフェースを実装したすべてのプラグインはhttp/httpリクエストまたはレスポンスごとに呼び出されるので、http/httpリクエスト応答データをハイジャックまたは変更するために使用できます.
注意:このインタフェースの方法はバックグラウンドで呼び出され、UIスレッドではありません.UIを更新するには、InvokeまたはBeginInvokeメソッドを使用してUIを更新することができます.IAutoTamperのすべてのメソッドは、OnLoadイベントの前に実行される可能性があります.
3.IAutoTamper 2インタフェース
IAutoTamper 2インタフェース(IAutoTamperインタフェースから継承)を実装したすべての拡張子は、応答ヘッダ(Response Headers)が使用可能である場合に呼び出される.
4.IAutoTamper 3インタフェース
IAutoTamper 3インタフェース(IAutoTamper 2インタフェースから継承)を実装したすべての拡張子は、リクエストヘッダ(Request Headers)が使用可能である場合に呼び出されます.
5.
例:
6.参考資料
http://www.fiddlerbook.com/Fiddler/dev/IFiddlerExtension.asp
1.IFIddlerExtensionインタフェース
開発するカスタムプラグインにUIインタフェースがある場合は、IFIddlerExtensionインタフェースを実装する必要があります.あなたのプログラムセットでIFIddlerExtensionインタフェースを実装したパブリッククラス(public class)は、Fiddler起動時にロードされます.
public interface IFiddlerExtension
{
// Called when Fiddler User Interface is fully available
void OnLoad();
// Called when Fiddler is shutting down
void OnBeforeUnload();
}
2.IAutoTamperインタフェース
IAutoTamperインタフェースはIFIddlerExtensionインタフェースを継承し、IAutoTamperインタフェースを実装したすべてのプラグインはhttp/httpリクエストまたはレスポンスごとに呼び出されるので、http/httpリクエスト応答データをハイジャックまたは変更するために使用できます.
注意:このインタフェースの方法はバックグラウンドで呼び出され、UIスレッドではありません.UIを更新するには、InvokeまたはBeginInvokeメソッドを使用してUIを更新することができます.IAutoTamperのすべてのメソッドは、OnLoadイベントの前に実行される可能性があります.
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);
}
3.IAutoTamper 2インタフェース
IAutoTamper 2インタフェース(IAutoTamperインタフェースから継承)を実装したすべての拡張子は、応答ヘッダ(Response Headers)が使用可能である場合に呼び出される.
/// <summary>
/// Interface for AutoTamper extensions that want to "peek" at response headers
/// </summary>
public interface IAutoTamper2 : IAutoTamper
{
/// <summary>
/// Called when the response headers become available
/// </summary>
/// <param name="oSession">The Session object for which the response headers are available</param>
void OnPeekAtResponseHeaders(Session oSession);
}
4.IAutoTamper 3インタフェース
IAutoTamper 3インタフェース(IAutoTamper 2インタフェースから継承)を実装したすべての拡張子は、リクエストヘッダ(Request Headers)が使用可能である場合に呼び出されます.
/// <summary>
/// Interface for AutoTamper extensions that want to "peek" at request headers
/// </summary>
public interface IAutoTamper3 : IAutoTamper2
{
/// <summary>
/// Called when the request headers become available
/// </summary>
/// <param name="oSession">The Session object for which the request headers are available</param>
void OnPeekAtRequestHeaders(Session oSession);
}
5.
IHandleExecAction
IHandleExecAction
インタフェースを実装したすべての拡張は、ユーザがQuickExecコマンドを実行するときに呼び出される.OnExecActionメソッドでtrueを返すと、コマンドの実行に成功し、他のActionを処理する必要がなくなります.public interface IHandleExecAction
{
// return TRUE if handled.
bool OnExecAction(string sCommand);
}
例:
public bool OnExecAction(string sCommand)
{
if (sCommand == "clearcache")
{
// quickexec clearcache , Fiddler
FiddlerApplication.UI.actClearWinINETCache();
return true; // ,
}
return false; // , ExecAction handlers
}
6.参考資料
http://www.fiddlerbook.com/Fiddler/dev/IFiddlerExtension.asp