Форум программистов, компьютерный форум, киберфорум
Наши страницы
C# Windows Forms
Войти
Регистрация
Восстановить пароль
 
dmal
8 / 8 / 4
Регистрация: 19.02.2013
Сообщений: 140
1

Переход по сайту и получение html после авторизации

28.01.2016, 21:21. Просмотров 263. Ответов 1
Метки нет (Все метки)

Метод авторизации
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
private string post(string URL, string formData)
        {
            HttpWebRequest request = (HttpWebRequest)WebRequest.Create(URL);
 
            request.Method = "POST";
            request.ContentType = "application/x-www-form-urlencoded";
 
            request.CookieContainer = cookie;
 
            byte[] EncodedPostParams = Encoding.UTF8.GetBytes(formData);
 
            request.ContentLength = EncodedPostParams.Length;
            request.Proxy.Credentials = CredentialCache.DefaultCredentials;
            request.CachePolicy = new HttpRequestCachePolicy(HttpRequestCacheLevel.NoCacheNoStore);
 
            Stream RequestStream = (Stream)request.GetRequestStream();
 
            request.GetRequestStream().Write(EncodedPostParams, 0, EncodedPostParams.Length);
            request.GetRequestStream().Close();
 
            HttpWebResponse response = (HttpWebResponse)request.GetResponse();
            StreamReader ResponseReader = new StreamReader(response.GetResponseStream(), Encoding.UTF8);
 
            string answer = ResponseReader.ReadToEnd();
 
            RequestStream.Close();
 
            cookie = request.CookieContainer;
 
            return answer;
        }
Метод перехода на другую страницу
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
private string get(string URL)
        {
            HttpWebRequest request = (HttpWebRequest)WebRequest.Create(URL);
            request.CookieContainer = cookie;
 
            HttpWebResponse response = (HttpWebResponse)request.GetResponse();
 
            string answer = new StreamReader(response.GetResponseStream(), Encoding.UTF8).ReadToEnd();
 
            cookie = request.CookieContainer;
 
            return answer;  
        }
Необходимо перейти на другую страницу сайта, но метод get возвращает ту же страницу, что и после авторизации
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.01.2016, 21:21
Ответы с готовыми решениями:

Переход на форму после удачной авторизации
Привет всем. Надо сделать так, чтобы после успешной авторизации переходило на следующую форму,...

Отправка POST-запроса авторизации, и клики по сайту
Здравствуйте дорогие форумчане, мне нужно программно авторизоваться на сайте goldenbirds.biz и...

Отправка html страницы серверу для авторизации
Есть такой вопрос, может кто в курсе - имеется html страница какого-нибудь ресурса, которая...

WebRequest работа после авторизации
Здравствуйте. Есть задача, авторизоваться на сайте поставщика и скачать с него новый прайс-лист. ...

Закрытие окна после авторизации
нужен конец для программы,чтобы после авторизации, как написал(авторизация прошла успешно) окно...

1
EvilFromHell
944 / 843 / 345
Регистрация: 26.04.2012
Сообщений: 2,648
29.01.2016, 20:01 2
dmal, а в ответ на первый запрос все корректно логинится и выдаются куки? Посмотрите в Fiddlerе запрос и ответ на него, сравните с правильным, а так же проверьте в отладчике содержимое cookie. И вот эта строка:
C#
1
 cookie = request.CookieContainer;
Излишня, так как и без того cookie и request.CookieContainer ссылаются на один и тот же объект после первого присвоения тут:
C#
1
request.CookieContainer = cookie;
Добавлено через 6 минут
А так скорее всего либо первый запрос неверно авторизуется. Либо где-то вне этого кода что-то случается с cookie. Чего-то явно неправильного с ходу не заметно.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.01.2016, 20:01

Парсинг HTML. Получение "правильного" html
Приветствую. Очевидно, парсю странички. Бигдата, разные сайты. Необходимо без использования...

PasswordBox, запуск формы после авторизации
Нужно чтобы при вводе верного пароля в PasswordBox и нажатии на кнопку (или хоть на Enter)...

Получение HTML кода
Не могу получить код из этой страницы "http://video.rutube.ru/9eebe1c6cc6a4cb84c34a9ef618f2d43" ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru