Авторизация на сайте - C# (185166)

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

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

Пытаюсь авторизоваться на сайте http://xterium.ru/login Тестовые данные: E-mail: removed@mail.ru Логин: c2785429 Пароль: c2785429
<form method="POST" action="/users/login">
                            <label>E-mail:</label>
                            <input type="text" placeholder="E-mail" required="" name="data[email]" value="">
                            <label>Пароль:</label>
                            <input type="password" placeholder="Пароль" required="" name="data[passw]" value="">  
                            <label>Вселенная:</label>
                            <select class="sel_uni_top" name="data[universe]"><option value="1">RU 1 [37%]</option><option value="2">RU 2 [99%]</option><option value="3">RU 3 [99%]</option><option selected="" value="5">RU 4 [41%]</option></select>   
                            <label>&nbsp;</label>          
                            <input class="button" type="submit" name="data[submit]" value="В игру">                    
                        </form>
Функция
private void post_http(string url, string data)//создаём метод с двумя аргументами url и data
        {
            HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);//создаём экзепляр класса HttpWebRequest, req
            req.Method = "POST"; // выбераем метод запроса 
            req.Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"; // добавляем заголовок и его значение
            req.CookieContainer = cookie; // прикрепляем к запросу куки
            req.Headers.Add("DNT", "1");// добавляем заголовок и его значение
            req.UserAgent = "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:17.0) Gecko/20100101 Firefox/17.0"; // можно выбрать другой UserAgent opera, chrome, IE
            req.Referer = url; // от куда мы пришли
            req.ContentType = "application/x-www-form-urlencoded"; // определяет тип документа для ответа, так же есть multipart
            using (var requestStream = req.GetRequestStream())//отправляем поток данных
            using (var sw = new StreamWriter(requestStream)) //создаём переменную в которой будет храниться запрос
            {
                sw.Write(data);//записываем в поток данные
            }
 
            using (var responseStream = req.GetResponse().GetResponseStream())//возвращаем поток данных
            using (var sr = new StreamReader(responseStream))//переменная в которой храниться ответ
            {
                var result = sr.ReadToEnd();//считывем ответ в переменную
                using (var sw = new StreamWriter("D:\\page.html", false, Encoding.GetEncoding(1251)))//false значит что файл будет перезаписываться каждый раз, и указываем кодировку ту что была на сайте
                    sw.Write(result);//записываем
            }
            
        }
Вызов
post_http("http://xterium.ru/login/users/login.php", "data[email]=removed@mail.ru&data[passw]=c2785429&data[universe]=5&data[submit]=В+игру");
Не получается, авторизация просто не проходит.. Может кто с кодом подсобить? Вчера весь день просидел пытаясь в тупую авторизоваться.. Вот что ловит сниффер при авторизации через сайт вручную: POST /users/login HTTP/1.1 data%5Bemail%5D=removed@mail.ru&data%5Bpassw%5D=c2785429&data%5Bsubmit%5D=%D0%92%D0%BE%D0%B9%D1%82%D0%B8 Вот что ловит сниффер при авторизации моим запросом POST /login/users/login.php HTTP/1.1 data[email]=removed@mail.ru&data[passw]=c2785429&data[universe]=5&data[submit]=В+игру Я какие уже ссылки в код не подставлял...

Решение задачи: «Авторизация на сайте»

textual
Листинг программы
Form Data:
data%5Bemail%5D=c2785429%40trbvn.com&data%5Bpassw%5D=c2785429&data%5Buniverse%5D=1&data%5Bsubmit%5D=%D0%92+%D0%B8%D0%B3%D1%80%D1%83

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


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

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

14   голосов , оценка 4.071 из 5