用WebClient发送POST.c#中的DownloadString

本文关键字:中的 DownloadString POST WebClient 发送 | 更新日期: 2023-09-27 18:15:59

我知道关于用c#发送HTTP POST请求有很多问题,但我正在寻找一种使用WebClient而不是HttpWebRequest的方法。这可能吗?这很好,因为WebClient类很容易使用。

我知道我可以将Headers属性设置为具有某些标题集,但我不知道是否有可能实际从WebClient做POST。

用WebClient发送POST.c#中的DownloadString

您可以使用使用HTTP POST的WebClient.UploadData(),即:

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

您指定的有效负载数据将作为请求的POST主体传输。

或者有WebClient.UploadValues()上传名称-值集合也通过HTTP POST。

可以在HTTP 1.0 POST中使用Upload方法

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));
}