0

(asp.net Web サイトで) フォームに入力して送信する (.Net で) アプリケーションを作成したいと考えています。

このアプリケーションは、ページを読み取り、フィールド (入力) を見つけ、入力したいフィールドの名前/ID を抽出し、ページをサーバーに送信する必要があります。

Web ブラウザー コントロールを保持し、ナビゲーションを自動化するアプリは必要ありません。

私が持っているもの:htmlをダウンロードする部分があり、フィールドを見つけてそれらの名前/ IDを抽出する部分があります。

必要なもの: フォームをサーバーに送信する方法 ( GET ではなくPOST )。

ページの html では、次のような JavaScript によって送信が行われます。

javascript:WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions("Button1", "", true, "", "", false, false))

問題は、この場合、どのように提出するかです。

4

4 に答える 4

2

HttpWebRequest/オブジェクトを使用しHttpWebResponseて、サーバーとHTTPリクエストを送受信できます。応答を受け取ったら、変更するさまざまなフィールドを探し、次のようなさまざまなINPUTフィールドを使用してPOSTリクエストデータブロックを構築します。

firstname=Joe&lastname=Doe&...

次に、これをPOSTリクエストとして送信します。また、リクエストを送信する実際のブラウザをエミュレートするために、適切なヘッダーのセットを作成する必要があります。そうしないと、サイトが正しく処理できない場合があります。

Fiddlerを使用して、最初にサイトに移動し、Firefoxにリクエストを保存してから、それらのリクエストからの情報を使用してHttpWebRequestオブジェクトを構築できます。

HttpWebRequest同期モードと非同期モードの両方で機能するため、数行のコードを使用してページをダウンロードするか、ダウンロードプロセス全体を制御できます。

于 2012-02-28T22:42:33.237 に答える
2

JavaScript を使用して送信するだけです。

<script type="text/javascript">
  document.forms["your_form_id"].submit();
</script>
于 2012-02-28T22:39:36.217 に答える
0

フォームが掲載されているページはあなたのウェブサイトに属していない、そしてあなたは外部サイトで何らかのフォームを読んでいると言っているのは正しいですか?

すべてのフィールドがある場合、フォームタグの「action」属性を読み取って、すでに取得しているすべてのキー/値を使用して同じ場所にPOSTを実行することはできませんか?

サーバー側のコードでこれを行うために使用HttpWebRequestでき、POSTデータをそのように送信するだけです。

http://msdn.microsoft.com/en-us/library/system.net.httpwebrequest.aspx

于 2012-02-28T22:44:28.737 に答える
0

ページがロードされた後にJavaScriptを挿入して、フォームを送信するだけです。

document.forms[0].submit();

ページにフォームが 1 つしかないと仮定すると、それ以外の場合は、フォームの名前をforms[]括弧内に引用符で囲むことができます。

于 2012-02-28T22:39:33.043 に答える