Модераторы: gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Авторизация на сайте, Что-то я делаю не так-( 
:(
    Опции темы
Alkash
Дата 10.5.2012, 15:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


коллекционер жизни
**


Профиль
Группа: Участник
Сообщений: 516
Регистрация: 5.7.2004
Где: /

Репутация: нет
Всего: нет



Доброго времени суток, уважаемые форумчане.Имеется сайт, на который мне необходимо авторизоваться из приложения. Делаю сие отправкой POST запроса, с помощью WebRequest.
Код

        public static string HttpPost(string URI, string Parameters)
        {
            System.Net.WebRequest req = System.Net.WebRequest.Create(URI);
            req.ContentType = "application/x-www-form-urlencoded";
            req.Method = "POST";
            byte[] bytes = System.Text.Encoding.ASCII.GetBytes(Parameters);
            req.ContentLength = bytes.Length;
            System.IO.Stream os = req.GetRequestStream();
            os.Write(bytes, 0, bytes.Length); 
            os.Close();
            System.Net.WebResponse resp = req.GetResponse();
            if (resp == null) return null;
            System.IO.StreamReader sr =
                  new System.IO.StreamReader(resp.GetResponseStream());
            return sr.ReadToEnd().Trim();
        }
*****
       richTextBox1.AppendText(HttpPost("https://secure.runescape.com/m=weblogin/login.ws", "username=shurik3d&password=medic&submit=login&mod=www&ssl=0&dest="));

Судя по снифферу - пост проходит как надо, редиректы на сайте тоже отрабатывают. Но почему - то авторизация не происходит, хотя я повторяю те параметры что шлет браузер. А в ответе сервера - таки не прошла авторизация, и он мне возвращает главную страницу. Собсвенно вопрос - что я делаю не так, и как авторизоваться на данной странице?

PS: www.runescape.com - терзаемый сайт собственно.

Добавлено @ 15:46
Код

 public static string HttpPost(string URI, string Parameters)
        {
            var req = (HttpWebRequest)WebRequest.Create(URI);
            req.AllowAutoRedirect = true;
            req.UserAgent = "User-Agent=Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.1.7) Gecko/20091221 Firefox/3.5.7 (.NET CLR 3.5.30729)";
            req.ContentType = "application/x-www-form-urlencoded";
            req.Method = "POST";
            req.Timeout = 10000;
            byte[] bytes = System.Text.Encoding.ASCII.GetBytes(Parameters);
            req.ContentLength = bytes.Length;
            System.IO.Stream os = req.GetRequestStream();
            os.Write(bytes, 0, bytes.Length);
            os.Close();
            System.Net.WebResponse resp = req.GetResponse();
            if (resp == null) return null;
            System.IO.StreamReader sr =
                  new System.IO.StreamReader(resp.GetResponseStream());
            return sr.ReadToEnd().Trim();
        }

Попробовал вот так - тоже облом.

Это сообщение отредактировал(а) Alkash - 10.5.2012, 15:46


--------------------
Подпись >> /dev/null
PM MAIL ICQ MSN   Вверх
i2m
Дата 19.5.2012, 18:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 43
Регистрация: 4.5.2010

Репутация: нет
Всего: 1



Нужно где то хратить куки, для этого нужно добавить CookieContainer 
        
Код

        private static readonly CookieContainer cookies = new CookieContainer();

        public static string HttpPost(string URI, string Parameters)
        {
            System.Net.WebRequest req = System.Net.WebRequest.Create(URI);
            req.ContentType = "application/x-www-form-urlencoded";
            req.CookieContainer = cookies;
            req.Method = "POST";
            byte[] bytes = System.Text.Encoding.ASCII.GetBytes(Parameters);
            req.ContentLength = bytes.Length;
            System.IO.Stream os = req.GetRequestStream();
            os.Write(bytes, 0, bytes.Length); 
            os.Close();
            System.Net.WebResponse resp = req.GetResponse();
            if (resp == null) return null;
            System.IO.StreamReader sr =
                  new System.IO.StreamReader(resp.GetResponseStream());
            return sr.ReadToEnd().Trim();
        }

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
cully
mr.DUDA
Exception

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, cully, mr.DUDA, Exception.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Распределённые приложения и сеть | Следующая тема »


 




[ Время генерации скрипта: 0.1027 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.