2011-10-25 20 views
0

特定のページのhtmlコードを取得しました。 URLの形式は次のとおりです。投稿URLをC#で検索してください。

http://www.externalwebsite.com/dir/page.html?p1=parameter1value&p2=parametervalue2

私は、このページのHTMLコードを取得すると、クエリ文字列にする前に書きましたp1とp2 PARAMTERでいっぱい隠された値のリストがあります。それから、 "/dir/page.html"にリダイレクトするPOSTアクションがあります:このページに必要なHTMLコンテンツがあります。

"dir/page.html"のhtmlコンテンツを取得する方法はありますか?

本当にありがとうございます!

ありがとう私はすでにのStreamReaderを使用してGetResponseStreamを実施したが、私はHTMLのこの部分を取得する:

<form name="myForm" method="post" action="/dir/page.html" accept-charset="ISO-8859-1"> 
    <input type="hidden" name="p1" value="parameter1"> 
    <input type="hidden" name="p2" value="parameter2"> 
</form> 
+0

あなたはHTTP POSTでパラメータを送信するためにWebRequestClassまたはWebClientクラスとUploadValuesメソッドを使用できますか?隠しフィールドにクライアントコードが設定されていますか? –

+0

「externalwebsite」は私が管理しているウェブサイトではないため、隠しフィールドがどのように埋め込まれているのか分かりません。 いずれにしても、私は何が起こっているのかをもう一度説明しようとします: - ユーザーはhttp://www.externalwebsite.com/dir/page.html?p1=parameter1value&p2=parametervalue2に行きます - httpにPOSTアクションがあります://www.externalwebsite.com/dir/page.htmlにアクセスしてください。 ウェブサイトに「OK」というページが正しく表示され、HTMLコンテンツを表示しています」というセッションやCookieなどがあるとします。 – matan

+0

アプリでInternetExplorerのインスタンスを作成してページに移動することをお勧めします。これはユーザーエクスペリエンスをシミュレートするため、必要な値を取得することができます。 –

答えて

1

あなたはGetResponseをしたいです。以下のような何か...

HttpWebRequest request =   
    WebRequest.Create("http://www.externalwebsite.com/dir/page.html"); 
HttpWebResponse response = request.GetResponse(); 
StreamReader reader = New StreamReader(response.GetResponseStream()); 
string sHTML = reader.ReadToEnd(); 
+0

私はすでにこのコードを実装しています。私が投稿したばかりの詳細を参照してください。ありがとうございました:) – matan

1

あなたは、HTTP GETリクエストを発行したが、フォームを送信するときには、2つのパラメータP1およびP2を含むサーバーへのHTTP PUTリクエストを発行する必要があります。正確にあなたが達成するために欠けているものを

WebClient wc = new WebClient(); 
byte[] result = wc.UploadValues("http://www.externalwebsite.com/dir/page.html", 
           "POST", 
           new NameValueCollection 
            { 
             { "p1", parameter1 }, 
             { "p2", parameter2 } 
            }); 
+0

何もする必要はありません...私はhiddenfield html(私の最初の投稿で書いたhtmlコードを参照してください)と同じページを取得します。 – matan

+0

フォームを提出するときにページが正確に投稿するものを見るために、フィドラーを開始することをお勧めします。多分フォームにフィールドが増えています。 – Jan

関連する問題