.NET 4.x Post запрос к сайту - C#

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

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

Здравствуйте, пробую авторизоваться на сайте adm.trudvsem.ru, прописываю параметры, но мне возвращается страница авторизации
        private void button1_Click(object sender, EventArgs e)
        {
            string gotov;
            System.Net.WebRequest req = System.Net.WebRequest.Create("https://adm.trudvsem.ru/login?0-1.IFormSubmitListener-signInForm");
            req.Method = "POST";
            req.Timeout = 100000;
            req.ContentType = "application/x-www-form-urlencoded";
            byte[] sentData = Encoding.GetEncoding(1251).GetBytes("username=tokru&password=dd3n");
            req.ContentLength = sentData.Length;
            System.IO.Stream sendStream = req.GetRequestStream();
            sendStream.Write(sentData, 0, sentData.Length);
            sendStream.Close();
            System.Net.WebResponse res = req.GetResponse();
            System.IO.Stream ReceiveStream = res.GetResponseStream();
            System.IO.StreamReader sr = new System.IO.StreamReader(ReceiveStream, Encoding.UTF8);
            //Кодировка указывается в зависимости от кодировки ответа сервера
            Char[] read = new Char[256];
            int count = sr.Read(read, 0, 256);
            string Out = String.Empty;
            while (count > 0)
            {
                String str = new String(read, 0, count);
                Out += str;
                count = sr.Read(read, 0, 256);
            }
           gotov = Out;
        }
    }
}
Скриншот возврата Скриншот анализа страницы бразером

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

textual
Листинг программы
System.Net.HttpWebRequest req = (System.Net.HttpWebRequest)System.Net.WebRequest.Create("https://adm.trudvsem.ru/login?0-1.IFormSubmitListener-signInForm");
req.Method = "POST";
req.Timeout = 100000;
req.ContentType = "application/x-www-form-urlencoded";
req.UserAgent = ...;
byte[] sentData = Encoding.GetEncoding(1251).GetBytes("username=tokru&password=dd3n");
req.ContentLength = sentData.Length;
using (System.IO.Stream sendStream = req.GetRequestStream())
{
    sendStream.Write(sentData, 0, sentData.Length);
}
 
string gotov;
using (System.Net.WebResponse res = req.GetResponse())
using (System.IO.Stream ReceiveStream = res.GetResponseStream())
using (System.IO.StreamReader sr = new System.IO.StreamReader(ReceiveStream, Encoding.UTF8))
{
    gotov = sr.ReadToEnd();
}

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


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

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

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