C# 使用C语言中的WebClient.DownloadString发送帖子#

C# 使用C语言中的WebClient.DownloadString发送帖子#,c#,http,post,httpwebrequest,webclient,C#,Http,Post,Httpwebrequest,Webclient,我知道用C#发送HTTP POST请求有很多问题,但我正在寻找一种使用WebClient而不是HttpWebRequest的方法。这可能吗?这很好,因为WebClient类非常容易使用 我知道我可以将Headers属性设置为设置某些标题,但我不知道是否可以从网络客户端执行POST,您可以使用它来使用HTTP POST,即: using (WebClient wc = new WebClient()) { byte[] result = wc.UploadData("http://stac

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

我知道我可以将
Headers
属性设置为设置某些标题,但我不知道是否可以从
网络客户端
执行POST,您可以使用它来使用HTTP POST,即:

using (WebClient wc = new WebClient())
{
    byte[] result = wc.UploadData("http://stackoverflow.com", new byte[] { });
}
指定的有效负载数据将作为请求的POST正文传输


或者,也可以通过HTTP POST上传名称值集合。

您可以将upload方法与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));
}