FlyBird
15.02.2010, 17:46
В общем думаю, что тема поднималась не раз, но толком ничего не нашла. В гугле есть пара тем приятных, по их образу и писала, но что-то где-то явно не так.
Естественно свой код есть и я его приведу ниже.
Суть в том, что есть форма на сайте и она передает методом post логин, пароль и сервер. Я пытаюсь отправить через C# POST запрос на форму авторизации. На выходе у меня приходит что-то не понятное. абракадабра или html в каком-то шифре. Кто знает может в gzip :confused:
Код моего запроса приведен ниже.
Если у кого-то есть своим, то буду рада их почитать.
string _ContentLength = "user=LOGIN&password=******&server_select=1";
// Делаем массив байтов
ASCIIEncoding encoder = new ASCIIEncoding();
byte[] POSTArray = encoder.GetBytes(_ContentLength);
// Готовим запрос
HttpWebRequest httpRequest = (HttpWebRequest)WebRequest.Create(@"http://www.SITE.ru/index.php?action=login");
System.Net.ServicePointManager.Expect100Continue = false;
httpRequest.Method = "POST";
httpRequest.ProtocolVersion = HttpVersion.Version10;
httpRequest.Referer = "http://www.SITE.ru/index.php?action=login&user=LOGIN&password=******&server_select=1";
httpRequest.ContentType = "application/x-www-form-urlencoded";
httpRequest.Headers.Add("Accept-Language", "ru,en-us;q=0.7,en;q=0.3");
httpRequest.Headers.Add("Accept-Encoding", "gzip,deflate");
httpRequest.Headers.Add("Accept-Charset", "windows-1251,utf-8;q=0.7,*;q=0.7");
httpRequest.Headers.Add("Keep-Alive", "115");
//httpRequest.Headers.Add("Connection", "keep-alive");
httpRequest.UserAgent = "Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.2) Gecko/20100115 MRA 5.6 (build 03278) Firefox/3.6 sputnik unknown";
httpRequest.Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8";
httpRequest.ContentLength = POSTArray.Length;
httpRequest.KeepAlive = true;
// Шлем запрос
Stream stream = httpRequest.GetRequestStream();
StreamWriter sv = new StreamWriter(stream);
sv.Write(_ContentLength);
stream.Write(POSTArray, 0, POSTArray.Length);
stream.Close();
//WebResponse webResponse = httpRequest.GetResponse();
HttpWebResponse webResponse = (HttpWebResponse)httpRequest.GetResponse();
// Читаем страницу с формой
StreamReader sr = new StreamReader(webResponse.GetResponseStream());
string tmp = "";
while (sr.Peek() >= 0)
tmp += sr.ReadLine();
File.WriteAllText(@"C:\aaa.txt", tmp);
webResponse.Close();
Естественно свой код есть и я его приведу ниже.
Суть в том, что есть форма на сайте и она передает методом post логин, пароль и сервер. Я пытаюсь отправить через C# POST запрос на форму авторизации. На выходе у меня приходит что-то не понятное. абракадабра или html в каком-то шифре. Кто знает может в gzip :confused:
Код моего запроса приведен ниже.
Если у кого-то есть своим, то буду рада их почитать.
string _ContentLength = "user=LOGIN&password=******&server_select=1";
// Делаем массив байтов
ASCIIEncoding encoder = new ASCIIEncoding();
byte[] POSTArray = encoder.GetBytes(_ContentLength);
// Готовим запрос
HttpWebRequest httpRequest = (HttpWebRequest)WebRequest.Create(@"http://www.SITE.ru/index.php?action=login");
System.Net.ServicePointManager.Expect100Continue = false;
httpRequest.Method = "POST";
httpRequest.ProtocolVersion = HttpVersion.Version10;
httpRequest.Referer = "http://www.SITE.ru/index.php?action=login&user=LOGIN&password=******&server_select=1";
httpRequest.ContentType = "application/x-www-form-urlencoded";
httpRequest.Headers.Add("Accept-Language", "ru,en-us;q=0.7,en;q=0.3");
httpRequest.Headers.Add("Accept-Encoding", "gzip,deflate");
httpRequest.Headers.Add("Accept-Charset", "windows-1251,utf-8;q=0.7,*;q=0.7");
httpRequest.Headers.Add("Keep-Alive", "115");
//httpRequest.Headers.Add("Connection", "keep-alive");
httpRequest.UserAgent = "Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.2) Gecko/20100115 MRA 5.6 (build 03278) Firefox/3.6 sputnik unknown";
httpRequest.Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8";
httpRequest.ContentLength = POSTArray.Length;
httpRequest.KeepAlive = true;
// Шлем запрос
Stream stream = httpRequest.GetRequestStream();
StreamWriter sv = new StreamWriter(stream);
sv.Write(_ContentLength);
stream.Write(POSTArray, 0, POSTArray.Length);
stream.Close();
//WebResponse webResponse = httpRequest.GetResponse();
HttpWebResponse webResponse = (HttpWebResponse)httpRequest.GetResponse();
// Читаем страницу с формой
StreamReader sr = new StreamReader(webResponse.GetResponseStream());
string tmp = "";
while (sr.Peek() >= 0)
tmp += sr.ReadLine();
File.WriteAllText(@"C:\aaa.txt", tmp);
webResponse.Close();