2011-11-28 11 views
13

C#でHTTP POST要求を送信することに関する多くの質問がありますが、HttpWebRequestではなくWebClientを使用するメソッドを探しています。これは可能ですか? クラスはとても使いやすいので、いいですね。C#でWebClient.DownloadStringでPOSTを送信する

Headersプロパティに特定のヘッダーを設定することができますが、実際にWebClientからPOSTを実行できるかどうかはわかりません。

答えて

13

あなたは、HTTP POSTを使用していますWebClient.UploadData()、すなわち:

using (WebClient wc = new WebClient()) 
{ 
    byte[] result = wc.UploadData("http://stackoverflow.com", new byte[] { }); 
} 

あなたのリクエストのPOSTのボディとして送信される指定のペイロードデータを使用することができます。

また、HTTP POSTを介して名前値コレクションをアップロードする場合は、WebClient.UploadValues()があります。

7

あなたは、HTTP 1.0 POST

string postData = Console.ReadLine(); 

using (System.Net.WebClient wc = new System.Net.WebClient()) 
{ 
    wc.Headers.Add("Content-Type","application/x-www-form-urlencoded"); 
    // Upload the input string using the HTTP 1.0 POST method. 
    byte[] byteArray = System.Text.Encoding.ASCII.GetBytes(postData); 
    byte[] byteResult= wc.UploadData("http://targetwebiste","POST",byteArray); 
    // Decode and display the result. 
    Console.WriteLine("\nResult received was {0}", 
         Encoding.ASCII.GetString(byteResult)); 
} 
でアップロード方法を使用することができます