2016-05-04 12 views
2

私はいくつかのWCFトラフィックヘッダーを変更する必要がある.NETアプリケーションを持っています。マイクロソフトの人々は、私が要求に必要なヘッダーを実際に注入し、現在のフレームワークで応答から取り除く方法がないと言いました。私がしたいのは、アプリケーションにFiddlerCoreを追加するだけです。ヘッダーがアプリケーションからの発信要求にない場合は、追加したいと思います。 (本当の単純な)。システムプロキシとして登録しないFiddlerCore

私はFiddlerApplicationをシステムプロキシとして登録すると、すべての機能を使用できますが、イベントは発生します。私はこれをユーザーに透過的にして、OSのプロキシ設定を壊さないようにしたいと思います。この場合には呼び出されない飽きない

private void Form1_Load(object sender, EventArgs e) 
{ 
    Fiddler.FiddlerApplication.SetAppDisplayName("FiddlerCoreTester"); 

    Fiddler.FiddlerApplication.RequestHeadersAvailable += this.RequestHeadersAvailable; 
    Fiddler.FiddlerApplication.BeforeRequest += this.BeforeRequest; 
    Fiddler.FiddlerApplication.AfterSessionComplete += this.SessionComplete; 
    FiddlerApplication.OnNotification += this.OnNotification; 
    Fiddler.FiddlerApplication.ResponseHeadersAvailable += this.ResponseHeadersAvailable; 

    Fiddler.URLMonInterop.SetProxyInProcess("127.0.0.1:80", "<-loopback>"); 
    Fiddler.FiddlerApplication.Startup(80, false, false); 

    WebClient wc = new WebClient(); 
    string s = wc.DownloadString("http://www.google.com"); 
    System.Windows.Forms.MessageBox.Show(s); 

    Fiddler.FiddlerApplication.Shutdown(); 
} 


private void ResponseHeadersAvailable(Session oSession) 
{ 
} 


private void OnNotification(object sender, NotificationEventArgs e) 
{ 
} 


private void SessionComplete(Session oSession) 
{ 
} 


private void RequestHeadersAvailable() 
{ 
} 

private void BeforeRequest(Fiddler.Session oSession) 
{ 
    if (oSession.RequestHeaders.Exists("TESTHEADER") == false) { 
     oSession.RequestHeaders.Add("TESTHEADER", "TEST"); 
    } 
} 

イベントは、しかし、私はその下にオーバーこれを変更する場合ん:

Fiddler.FiddlerApplication.Startup(80, true, false); 

は、この作業を取得する方法を誰もが知っていますか?そんなに

答えて

0

あなたは、あなたのWebクライアントがプロキシとしてFiddlerCoreを使用させなければならない

感謝。これを行うには、Webクライアントのプロキシを、FiddlerがリッスンするプロキシURLと同じに設定する必要があります。 Webクライアントが文字列をhttp://127.0.0.1:80にロードし、Fiddlerがリクエストを取得できるようになりました。

WebClient wc = new WebClient(); 
wc.Proxy = new WebProxy(new Uri("http://127.0.0.1:80")); 
string s = wc.DownloadString("http://www.google.com"); 
Fiddler.FiddlerApplication.Shutdown(); 
関連する問題