2012-01-20 6 views
0

予め定義されたクッキーを使用してウェブサイトに移動したい input type="text"のペアにテキストを追加し、送信ボタンを使用してフォームを送信します。 私はそれができることを知っていますが、私はどのように見つけることができません。ウェブブラウザのクッキーとフォームの送信

すでにPOSTデータをページに送信しようとしましたが、実行するアクションのボタンをクリックする必要があります。

 static String readHtmlPage(string url) 
     { 

     //setup some variables 

     String username = "demo"; 
     String password = "password"; 
     String firstname = "John"; 
     String lastname = "Smith"; 

     //setup some variables end 

     String result = ""; 
     String strPost = "username=" + username + "&password=" + password + "&firstname=" + firstname + "&lastname=" + lastname; 
     StreamWriter myWriter = null; 

     HttpWebRequest objRequest = (HttpWebRequest)WebRequest.Create(url); 
     objRequest.Headers["Cookie"] = "sid=0"; 
     objRequest.Headers["Cookie"] = "username=0"; 
     objRequest.Method = "POST"; 
     objRequest.ContentLength = strPost.Length; 
     objRequest.ContentType = "application/x-www-form-urlencoded"; 

     try 
     { 
      myWriter = new StreamWriter(objRequest.GetRequestStream()); 
      myWriter.Write(strPost); 
     } 
     catch (Exception e) 
     { 
      return e.Message; 
     } 
     finally 
     { 
      myWriter.Close(); 
     } 

     HttpWebResponse objResponse = (HttpWebResponse)objRequest.GetResponse(); 
     using (StreamReader sr = 
      new StreamReader(objResponse.GetResponseStream())) 
     { 
      result = sr.ReadToEnd(); 

      // Close and clean up the StreamReader 
      sr.Close(); 
     } 
     return result; 
    } 


    static void Main(string[] args) 
    { 

     Console.Write(readHtmlPage("http://www.ggogle.com/")); 
    } 

答えて

0

私の提案、私が過去にやったとです:: はここに私のコードです
- Fiddlerを使用し、通常どおりお使いのブラウザでサイトをヒットし、あなたのようなフォームに記入してください。
- Fiddlerはリクエスト/レスポンスを記録し、POSTデータ文字列をコピーしてそこに必要な値を置き換え、HttpWebRequest/HttpWebResponseを使用してプログラムでPOSTを実行し、応答を取得することができます。

post data through httpWebRequest

例:ここで私は最後のコメントを提出したときに、私は捕獲後のデータがあります。

comment=When+you+collect+the+recorded+POST+string+you+can+swap+out+the+key+value+pairs+in+there+before+you+make+the+request.+When+the+OnClick+event+fires+it+will+POST+data+to+the+server%2C+this+is+what+you+need+to+recreate+nothing+with+the+javascript.&fkey=62a7d57a52ee7fa723413a2e1dbe7e71

string postData = string.format("comment={0}&fkey={1}", myCommentString, myFKey); 

その後、POSTは反対したURLにこの文字列を渡すと、それを再作成するためには、HttpWebRequestを使用することができます。

また、ポスト文字列の値をURLエンコードしていることを確認する必要があります。

+0

送信するたびに異なる値が必要です。 POSTデータを送信すると、アクションは送信ボタンのOnClickイベントにバインドされているため、機能していません。 – user1161257

+0

録音されたPOST文字列を収集するときに、要求を行う前にそこでキー値のペアを入れ替えることができます。 OnClickイベントが発生すると、POSTデータがサーバーに送られます。これは、javascriptで何も再作成する必要はありません。 – user1231231412

+0

私はあなたを愛しています、ありがとう。 – user1161257

関連する問題