Отправить POST с помощью WebClient.DownloadString в С#
Я знаю, что есть много вопросов о отправке запросов HTTP POST с С#, но я ищу метод, который использует WebClient
, а не HttpWebRequest
. Это возможно? Было бы хорошо, потому что класс WebClient
настолько прост в использовании.
Я знаю, что могу установить свойство Headers
для установки определенных заголовков, но я не знаю, возможно ли выполнить POST из WebClient
.
Ответы
Ответ 1
Вы можете использовать WebClient.UploadData()
, который использует HTTP POST, т.е.
using (WebClient wc = new WebClient())
{
byte[] result = wc.UploadData("http://stackoverflow.com", new byte[] { });
}
Данные полезной нагрузки, которые вы указали, будут переданы в качестве тела POST вашего запроса.
В качестве альтернативы есть WebClient.UploadValues()
для загрузки коллекции значений по имени через HTTP POST.
Ответ 2
Вы можете использовать метод отправки с 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));
}