2012-01-11 7 views
0

私はリダイレクトを追跡するユーティリティーに取り組んでいます。 HTTPリダイレクトはかなりよく、次のC#の方法によって処理されます。C#でjavascript HTTPリダイレクトをキャプチャする方法は?

  • HttpWebRequestの
  • HttpWebResponseの
  • WebHeaderCollection(場所は出願)

次のステップは、へのURLの旅ではJavaScriptリダイレクトを含めることです最終ページ。

  1. このタイプのリダイレクトをC#でキャプチャするにはどうすればよいですか?
  2. リダイレクションの他のタイプは考慮する必要がありますか?
+0

キャプチャとは、リダイレクトを呼び出す前にリダイレクトされたURLをリストに保存したいのですか? – MethodMan

+1

「トラックのリダイレクト」 - 実際にブラウザを使用せずにブラウザがそれをレンダリングする場合の最終ページを把握するように見えますか? –

+0

これを実現するには、完全なJavaScriptインタープリタが必要です。 –

答えて

3

を確かに興味深いプロジェクトである、少なくとも部分的なHTML DOMとJavaScriptエンジンを実装することであろうDOMとjavascriptのapis/prototypesの場合は、ページをロードして任意のjavascriptコードを実行し、window.locationプロパティ設定ツールでイベントが発生したときにイベントを発生させ、

Javascriptを:これは、C#のための埋め込まれたJavaScriptエンジンのない供給不足はここに、ありません、あなたの標準

window.location = "/home"; 

だけでなく、計算された値を処理することを可能にすることは、私は本当に良いことを見つけることをほんの一部です.Net - GoogleのV8エンジンを使用します。アプリケーションに組み込むのが本当に簡単です。あなたのアプリケーションに管理されていないDLLを保持しているだけの弱点があります。 https://github.com/JavascriptNet/Javascript.Net

JINT(.NET用のJavascript通訳) - 本当に良いです。完全に管理されたコード。ここでも、アプリケーション内での統合が容易です。 http://jint.codeplex.com/

ここでの実際のキーは、通常はブラウザで作成されたものをモックアップしています。

0

唯一の実用的なオプションは、フルブローブラウザを使用してこれを行うことです。 WebForms用のWebBrowserコントロール、またはブラウザの自動化(IE用、またはSeleniumやWebAIIなど)、または他のブラウザエンジンの埋め込みが可能です(WebkitにはC#バインディングがあると思います)。本格的なブラウザエンジンを使用することで、そこにあるリダイレクションメカニズムも処理されます。

代替は、あなたが埋め込まれたJavaScriptエンジンを使用し、より一般的にアクセスする側面の一部をモックアップデータモデルを作成した場合...

関連する問題