.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();
}