2011-11-28 27 views
13

C# ile HTTP POST istekleri gönderme hakkında birçok soru olduğunu biliyorum, ancak HttpWebRequest yerine WebClient kullanan bir yöntem arıyorum. Mümkün mü? Güzel olurdu çünkü WebClient sınıfının kullanımı çok kolay.WebClient.DownloadString ile POST gönder C#

Belirli üstbilgilerin ayarlanması için Headers özelliğini ayarlayabildiğimi biliyorum, ancak aslında WebClient'dan POST yapmanın mümkün olup olmadığını bilmiyorum.

cevap

13

HTTP POST kullanan WebClient.UploadData(), yani .:

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

Talebinizin POST organı olarak iletilecek belirtmek yük verisi kullanabilirsiniz.

Alternatif HTTP POST üzerinden de bir ad-değer koleksiyonunuzu yüklemek için WebClient.UploadValues() yoktur.

7

Sen HTTP 1.0 SONRASI

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)); 
} 
ile yükle yöntemi kullanabilirsiniz