.NET 4.x Post запроса - C#

Узнай цену своей работы

Формулировка задачи:

Добрый день. Столкнулся с проблемой при post запросе. Есть такой код, который должен делать запрос:
string url = "https://site.com/web/1234567/login";
            string data = "access_token=" + token;
            http_post(url, data);
//Функция post запроса 
        public string http_post(string url, string data)
        {
            WebRequest request = (HttpWebRequest)WebRequest.Create(url);
            request.Method = "POST";
            byte[] byteArray = Encoding.UTF8.GetBytes(data);
            request.ContentType = "application/x-www-form-urlencoded";
            request.ContentLength = byteArray.Length;
            Stream dataStream = request.GetRequestStream();
            dataStream.Write(byteArray, 0, byteArray.Length);
            dataStream.Close();
            WebResponse response = request.GetResponse();
            dataStream = response.GetResponseStream();
            StreamReader reader = new StreamReader(dataStream);
            var result = reader.ReadToEnd();
            return result;
        }
Компилятор выдает ошибку: Необработанное исключение типа "System.Net.WebException" в System.dll Дополнительные сведения: Удаленный сервер возвратил ошибку: (400) Недопустимый запрос. Если выполнять запрос таким способом, то всё работает:
http_post();
        //Функция post запроса 
        public void http_post()
        {
            WebRequest request = (HttpWebRequest)WebRequest.Create("https://site.com/web/1234567/login");
            request.Method = "POST";
            byte[] byteArray = Encoding.UTF8.GetBytes("access_token=1234567890asd");
            request.ContentType = "application/x-www-form-urlencoded";
            request.ContentLength = byteArray.Length;
            Stream dataStream = request.GetRequestStream();
            dataStream.Write(byteArray, 0, byteArray.Length);
            dataStream.Close();
            WebResponse response = request.GetResponse();
            dataStream = response.GetResponseStream();
            StreamReader reader = new StreamReader(dataStream);
            var result = reader.ReadToEnd();
        }
Что я не так делаю?

Решение задачи: «.NET 4.x Post запроса»

textual
Листинг программы
WebResponse response = request.GetResponse();

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

8   голосов , оценка 4.25 из 5