2011-12-03 13 views
1

ASPX.NETサイトでフォーム送信をシミュレートしようとしています。ASPXでフォーム送信をシミュレートするHTTPClient - 無効なビューステート

1)正しい認証情報時基本認証

2)で構成されているユーザの訪問http://mysite.com/は、ユーザーがブラウザで次のよう

ブラウザでアクセスするウェブサイトの流れであります一つの入力テキストボックスとボタン(Default.aspxのをURLがhttp://mysite.com/とどまるが、提供されているフォームがある)

3)ユーザーは、いくつかのテキストを入力し、プレスが提出してフォームを...示す

4)ページをリロード... URLはまだhttp://mysite.com/です...しかし、10秒後にトリガされ、私はHTTPClientのを使用して私のプログラムでは、この流れをシミュレートしようとしていますhttp://mysite.com/Downloader

からファイルをダウンロードし、タイマーがあります。

1)http://mysite.com

2)抽出隠しフォームフィールド__EVENTVALIDATIONと

3 __VIEWSTATE)は、2つの上記及び他のフォームのフィールドを持つPOSTリクエストを作成し、無効ViewStateにhttp://mysite.com結果にそれを投稿にGETを行い例外。

これをHTTPClientでどのように達成できますか?

答えて

3

これを行う通常の方法は、次のとおりです。まず、ブラウザからWebサイトを使用しているときにWireSharkまたはFiddlerを使用してHTTPトラフィックを記録します。次に、パケットトレースを詳細に分析し、ブラウザから送信されたすべてのGETおよびPOSTメッセージからすべてのHTTPヘッダーとすべてのHTTPペイロードを収集します。第3に、コードから同じメッセージを送信しようとします。 HTTP要求を送信した後、サーバーの応答を分析し、次の要求に挿入する必要があるすべてのデータを抽出する必要があります。たとえば、refererフィールドを設定することを忘れないでください。各リクエストをコードに1つずつ追加し、コードを実行するときにトラフィックを記録します。 HTTPリクエストを正しくアセンブルすると、リクエストパケットはブラウザのリクエストのように見えます。

+0

私はパラメータがPOSTを伴って含む送り出されているかを調べるためにFirebugのを使用していました。それらを正しく複製すると、HTTPClientを正常に実行できます。 –

0

私は同じシナリオですが、外部のASPXページへのPOSTリクエストを作成する必要があります。 FIDDLERを使用してトラフィックをキャプチャし、オンライン投稿要求ツール(https://www.codepunker.com)を使用して呼び出しをシミュレートしようとしました

リクエストを再作成できませんでした...私の意見で

(この時間を必要とする)我々がしなければならない:

  1. はすべて提出するPOSTリクエストを作成して値
  2. を持つすべてのフォーム要素を収集元の形に基本的なWebRequestクラスを作成します。ビューステートを含む要素は

は注:Cookieを受け入れるWebクライアントを使用する必要があるということであってもよいし、確認してください。

Accept Cookies in WebClient?

幸運

関連する問題