2012-01-11 25 views
0

我正在研究跟蹤重定向的實用程序。 HTTP重定向通過以下C#方法很好進行處理:如何在C#中捕獲javascript HTTP重定向?

  • HttpWebRequest的
  • HttpWebResponse
  • WebHeaderCollection(地點提交)

下一步是包括在URL旅程的JavaScript重定向最後一頁。

  1. 如何捕獲這種類型的重定向在c#中?
  2. 是否有任何其他類型的重定向需要考慮?
+0

當你說Capture ..你想在調用重定向之前將重定向的URL存儲在List中嗎? – MethodMan 2012-01-11 21:19:45

+1

「跟蹤重定向」 - 它看起來像你想要什麼最終頁面將是如果瀏覽器將呈現它,而不實際使用瀏覽器? – 2012-01-11 21:25:58

+0

你將需要一個完整的JavaScript解釋器來實現這一點。 – 2012-01-11 21:27:10

回答

3

如果您使用嵌入式JavaScript引擎,並創建小樣一些比較常用的訪問方面的數據模型的DOM和JavaScript API /原型,然後你可以加載頁面,執行任何和所有的JavaScript代碼,並讓你的window.location屬性設置器在設置時觸發一個事件,然後按正常的方式跟隨該URL。這使您可以處理計算值,以及你的標準

window.location = "/home"; 

有嵌入的JavaScript引擎的C#沒有供不應求,這裏僅僅是少數,我覺得是真的好:

的Javascript .Net - 使用Google的V8引擎。真的很容易集成到應用程序中。唯一的缺點就是在應用程序中保留一個不受管理的DLL。 https://github.com/JavascriptNet/Javascript.Net

Jint(JavaScript解釋爲.NET) - 真的很不錯。完全託管的代碼。同樣,易於集成到應用程序中。 http://jint.codeplex.com/

真正的關鍵是嘲笑通常由瀏覽器創建的東西。

0

你唯一可行的選擇是使用全面的瀏覽器來做到這一點。您可以使用WebBrowser控制WebForms,或瀏覽器自動化(直接用於IE,或通過像Selenium或WebAII之類的東西),或嵌入其他瀏覽器引擎(我認爲WebKit有C#綁定...)。使用全面的瀏覽器引擎也會照顧其他重定向機制。

替代將實現至少部分HTML DOM和JavaScript引擎,它絕對是有趣的項目...