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;
        }
Подробнее

Пример POST запроса через WebRequest C#

Пример POST запроса к сервису с использованием WebRequest на C#:

using System;
using System.Net;
using System.IO;

namespace Tester
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("RUN Tests for Service:");

            //Выполняем тестовый POST запрос к службе.               
            SendTestPostRequest(@"URL - сервиса", "Текст запроса");

            Console.WriteLine("Press any key for exit...");
            Console.ReadKey();
        }

        //Метод выполяющий запрос по указанному адресу и получающий ответ.
        static void SendTestPostRequest(string url, string data)
        {
            try
            {
                WebRequest request = WebRequest.Create(url);
                request.Method = "POST";
                string postData = data;
                request.ContentType = "application/x-www-form-urlencoded";
                System.Text.UTF8Encoding encoding = new System.Text.UTF8Encoding();
                byte[] postByteArray = encoding.GetBytes(postData);
                request.ContentLength = postByteArray.Length;

                System.IO.Stream postStream = request.GetRequestStream();
                postStream.Write(postByteArray, 0, postByteArray.Length);
                postStream.Close();
                HttpWebResponse response = (HttpWebResponse) request.GetResponse();
                Console.WriteLine("Response Status Description: " + response.StatusDescription);
                Stream dataSteam = response.GetResponseStream();
                StreamReader reader = new StreamReader(dataSteam);
                string responseFromServer = reader.ReadToEnd();
                Console.WriteLine("Response: " + responseFromServer);
                reader.Close();
                dataSteam.Close();
                response.Close();
            }
            catch(Exception ex)
            {
                //Если что-то пошло не так, выводим ошибочку о том, что же пошло не так.
                Console.WriteLine("ERROR: "+ex.Message);
            }
        }

    }
}
Подробнее