Форум программистов, компьютерный форум, киберфорум
C# .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
34 / 34 / 16
Регистрация: 07.04.2011
Сообщений: 103

Не выходит авторизоваться на afisha.ru

25.08.2012, 14:45. Показов 914. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте!
Требуется авторизироваться на сайте afisha.ru
Для этого использую следующий код:
C#
1
2
3
4
5
6
7
 static void Main(string[] args)
        {
            CookieContainer container = new CookieContainer();
            Console.WriteLine(Post("http://id.afisha.ru/AjaxPage.aspx", string.Format("component=LoginCommand&login={0}&password={1}&remember=true&ReturnURL=", login, password), true, ref container));
           Console.WriteLine(File.WriteAllText("html2.html", Get("http://afisha.ru", ref container));
            Console.Read();
        }
При отправки первого запроса получаю ответ вида

Code
1
{"Success":true,"Message":{"userID":"621--цифры","userName":"Имя","photoUrl":"http://s2.afisha.ru/dsn/userpic_default_48.gif","Status":"Success","cookieName":"_AFISHAAUTH","cookieValue":"O3yyE-1gNl7dYVCCddlfu--и еще много закодированного текста","cookieExpires":"30"},"Error":"","LoggedIn":false}
Но при дальнейшем get запросе главная страница показывается так, как будто я не авторизован, хотя так не должно быть.
Сам запрос полностью правильный, гугл хром отправляет точно такой же, методы post и get так же корректны, не раз использовались для подобных действий на других сайтах.
В чем может быть проблема, может кто-нибудь сталкивался уже?

Привожу код методов post и get

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
 private static string Post(string url, string data, bool clearCookie, ref CookieContainer container, WebProxy proxy = null)
        {
            string output = null;
            try
            {
                HttpWebRequest WebReq = (HttpWebRequest)WebRequest.Create(url);
                if (clearCookie) WebReq.CookieContainer = new CookieContainer();
                else WebReq.CookieContainer = container;
                byte[] buffer = Encoding.ASCII.GetBytes(data);
                WebReq.Method = "POST";
                WebReq.ContentType = "application/x-www-form-urlencoded";
                WebReq.ContentLength = buffer.Length;
                Stream PostData = WebReq.GetRequestStream();
                PostData.Write(buffer, 0, buffer.Length);
                PostData.Close();
                HttpWebResponse WebResp = (HttpWebResponse)WebReq.GetResponse();
 
                Stream Answer = WebResp.GetResponseStream();
                container = WebReq.CookieContainer;
                StreamReader _Answer = new StreamReader(Answer);
                output = _Answer.ReadToEnd();
                return output.Trim() + "\n";
            }
            catch (Exception ex)
            {
                return "error, try again";
            }
        }
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
  private static string Get(string url, ref CookieContainer container, WebProxy proxy = null)
        {
            try
            {
                HttpWebRequest WebReq = (HttpWebRequest)WebRequest.Create(url);
                WebReq.Method = "GET";
                WebReq.CookieContainer = container;
                WebReq.Proxy = proxy;
                HttpWebResponse WebResp = (HttpWebResponse)WebReq.GetResponse();
                Stream stream = WebResp.GetResponseStream();
                StreamReader reader = new StreamReader(stream);
                string response = reader.ReadToEnd();
                WebResp.Close();
                reader.Dispose();
                return response;
 
            }
            catch (Exception ex) { return "error, try again" + ex.Message; }
 
        }
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
25.08.2012, 14:45
Ответы с готовыми решениями:

Не получается авторизоваться
Здравствуйте, тут такая проблема: Есть файл: login.php В самом начале пишу: <? session_start(); ?> По ходу кода:

Не получается авторизоваться
Добрый день, Помогите найти ошибку. Вот код для регистрации пользователя: $pass_hash=md5($email.$pass); if ((!empty($email)) and...

Не хочет авторизоваться
ребят хелп взял код у знакомой и у нее все работает запускаю у себя не хочет не в какую работать пишет что мол"Извините, вы должны...

2
 Аватар для WizarД
53 / 56 / 10
Регистрация: 07.02.2011
Сообщений: 556
Записей в блоге: 1
25.08.2012, 15:09
Вы задаете
C#
1
container = WebReq.CookieContainer;
Объявите глобальный контейнер и заполняйте его при получении ответа.
C#
1
2
3
CookieCollection cc = WebResp.Cookies;
 
container.Add(cc);
1
34 / 34 / 16
Регистрация: 07.04.2011
Сообщений: 103
25.08.2012, 15:22  [ТС]
Контейнер container является глобальным, передается в функцию как ссылка.

Изменения
C#
1
2
3
4
5
...
container = WebReq.CookieContainer;
CookieCollection cc = WebResp.Cookies;
container.Add(cc);
...
и просто
C#
1
2
3
4
....
CookieCollection cc = WebResp.Cookies;
container.Add(cc);
....
ни к чему не привели, все точно так же.

Добавлено через 4 минуты
Проблема решена исправлением
C#
1
container.Add(cc)
на
C#
1
container.Add(new Uri("http://www.afisha.ru"),cc);
WizarД, спасибо!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
25.08.2012, 15:22
Помогаю со студенческими работами здесь

Возможно ли авторизоваться
Здаствуйте,Возможно ли авторизоваться на сайте w1.ru или http://www.walletone.com/ru/wallet/ есть и мобильная версия m.w1.ru пробую...

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

Как авторизоваться на сайте в ВК?
Как авторизоваться на сайте в ВК, через Post-запрос для получения скрытых от общего просмотра сведений? GET-запрос выполняю через...

Не могу авторизоваться в Вконтакте
Внезапно перестало заходить вконтакт ... начало писать мол неверная дата и время, уже все методы что советовали в просторах интернета...

Не получается авторизоваться на my.beeline.ru
Здравствуйте! Помогите, пожалуйста, решить проблему авторизации в личном кабинете билайна. Раньше авторизация проходила без проблем. Потом...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru