質問

ご存知の方もいるかもしれませんが、C# では POST が可能です。これは、Web リクエスト/レスポンスを使用して Web サイト上のボタンを「押す」ことができることを意味します。サイトには JavaScript で動作するボタンもあり、次のように始まります。

(function($j){
$j.data(document, 'maxPictureSize', 764327);
share_init();
})(jQuery.noConflict());

httprequests やその他の種類のライブラリなどを使用して、C# でこれらの関数呼び出しを行うことができる解決策はありますか?

役に立ちましたか?

解決

いと仮定しているプログラムしたい操作をサーバーの"のバックエン"のためのwebページのサーバーの考える人が押し、エンターテインメントの投稿、送信データのウェブページを含むとします。

最初のツールが必要です Microsoftネットワークモニター3.3, 又はその他のネットワークパケットトレースツールです。このポストからのウェブページです。NetMon(少なくとも)を分解し、パケットのHTTP個のヘッダで簡単に行ってみると面白いかも。

今まで知らどのようなデータをリアルが送信、アドレスとパスワードでログインでデータを送信する(可能な"クエリ文字列"であるという珍しいです

次を記述する必要がありますC#を同じようなポストと同じURL。いま知っていHttpWebRequest/HttpWebResponseはいって説明します。今おNetMon微量の コンテンツタイプ ヘッダーた application/x-www-form-urlencoded.これは多くのデータからHTML形式でURLエンコード(名様から分離したものではなく、必要はURLエンコードデータを投稿で、知る必要がありサイズの 符号化されたデータ のための コンテンツの長さ.HttpUtility.UrlEncode()が一つの方法の使用のためにこのエンコーディングです。

だ"という思いを大切にしていても、やってみよび使用NetMon検査後の要請に対応から、サーバーにコピーします。頑張ってくださいまでは重複しう謎のウェブページやってます。

他のヒント

[OK]を使用するWebブラウザーフォームは、ページをロードします:

webBrowser.Navigate( url );

、ファイルや文字列にウェブbroweserフォームの内容を保存します:

File.WriteAllText(@"c:\test\ajax_test.txt", webBrowser1.Document.Body.Parent.OuterHtml, Encoding.GetEncoding(webBrowser1.Document.Encoding));
あなたはtxtファイルに見れば、

今、それはあなたが探してhtmlタグを持っている必要があります。

POSTを行うためにはJavaScriptを使用した場合でも、

ボタンを提出するのと同じように動作し、どこかJSでPOSTがあります。あなただけのJSコードの記事の場所に掘ると、それはそれをしない方法を確認する必要があります。そして、C#で同じポストを作る。

例ASP.NET独自の__doPostBack機能を見てみましょう。

var theForm = document.forms['aspnetForm'];
if (!theForm) {
    theForm = document.aspnetForm;
}
function __doPostBack(eventTarget, eventArgument) {
    if (!theForm.onsubmit || (theForm.onsubmit() != false)) {
        theForm.__EVENTTARGET.value = eventTarget;
        theForm.__EVENTARGUMENT.value = eventArgument;
        theForm.submit();
    }
}

あなたは、フォームの入力フィールドに複数の値を設定し、提出しないことが掘っていることがわかります。基本的には、入力に対して同じ値を記入し、同じフォームを送信する必要がある、あなたはJSを自分で行って提出持っています。

これらのボタンが送信しているリクエストとヘッダーをキャプチャし、それらをシミュレートする必要があります。 HttpWebRequest. 。もご覧ください ワティン Web サイトでのユーザーのアクションを自動化したい場合。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top