POST запрос application/x-www-form-urlencoded на сервер при помощи WebRequest С#
Пример метода производящего запрос data на сервер и получение ответа res по указанному адресу url:
public static string ServerRequest(string data, string url)
{
string res = "";
try
{
// Чтобы не проверял SSL а просто шёл и брал что дают по HTTPS
System.Net.ServicePointManager.ServerCertificateValidationCallback +=
delegate (object sender, System.Security.Cryptography.X509Certificates.X509Certificate certificate,
System.Security.Cryptography.X509Certificates.X509Chain chain,
System.Net.Security.SslPolicyErrors sslPolicyErrors)
{
return true; // **** Всегда принимаем
};
var httpWebRequest = (HttpWebRequest)WebRequest.Create(url);
httpWebRequest.ContentType = "application/x-www-form-urlencoded";
httpWebRequest.Method = "POST";
using (var streamWriter = new StreamWriter(httpWebRequest.GetRequestStream()))
{
streamWriter.Write(data);
streamWriter.Flush();
streamWriter.Close();
}
var httpResponse = (HttpWebResponse)httpWebRequest.GetResponse();
using (var streamReader = new StreamReader(httpResponse.GetResponseStream()))
{
var result = streamReader.ReadToEnd();
res = result;
}
}
catch (WebException ex)
{
using (var streamReader = new StreamReader(ex.Response.GetResponseStream()))
{
var result = streamReader.ReadToEnd();
res = result;
}
Program.Logger.Error(ex, ex.Message);
}
Program.Logger.Info(res);
return res;
}