2010-08-16 62 views

回答

5

您是否想過使用Fiddler?他們甚至有一個API,你可能可以使用它。

編輯

您可以嘗試使用Navigated eventLoadCompleted event用於獲取響應信息。您可能可以使用Navigating event獲取請求信息。這些事件可能發生在異步請求中,但我不確定。

編輯反擊

嗯,我沒有使用上述事件的一些測試,我怕我什麼也沒得到。事件並沒有給我任何我可以使用的東西。儘管他們可以訪問web響應和webrequest,但在我的測試中,它們始終沒有任何/無效。

我想可悲的現實是,網絡瀏覽器控件並不打算以您想要的方式使用。這只是爲了提供網頁/數據,並不能讓您查看數據。我認爲他們做了一個C.Y.A.措施來防止某人制造惡意軟件/間諜軟件瀏覽器。

最好的辦法是將網絡瀏覽器與提琴手(或其他一些「嗅探」庫)耦合起來。

+0

我是那種希望有一些事件,我可以在Web瀏覽器控件捕捉。關於「編輯反擊」結果的 – 2010-08-16 19:26:38

+0

,我正要評論說同樣的事情。您如何使用WebClient類發出請求,然後使用瀏覽器控件顯示結果,您有什麼想法?我沒有太多時間進行體驗,但我認爲這將是我的下一步。 – 2010-08-17 15:15:49

+0

這是可行的,使用OpenRead(在webclient上)的NavigateToStream(在webbrowser上),但我不確定要使用哪些事件。聽起來像是有趣的事情來測試。 – 2010-08-17 17:05:42

4

完成此操作的另一種方法是實現您自己的Asynchronous Pluggable Protocol處理程序,但這不是一項簡單的任務。基本上,APPs是Internet Explorer用來通過URLMON從URL下載數據的機制。您可以實現自己的APP,取代URLMON使用的默認處理程序,這將允許您控制所有請求和響應。

而不是取代默認處理程序,你也可以實現一個APP,它包裝它。一個通常被引用的例子是由Igor Tandetnik創建的PassThroughAPP,它顯示瞭如何完成這樣的事情。您還可以在此代碼項目article中找到C#實現。我相信你最感興趣的接口是IHttpNegotiateOnResponse方法,它允許客戶端檢查請求和響應頭。

PassThroughApp存在一些問題,詳細信息以及可能的解決方案here。下面還包括一​​些其他資源。

http://support.microsoft.com/?id=kb;en-us;303740 http://www.codeproject.com/KB/aspnet/AspxProtocol.aspx

相關問題