Форум программистов, компьютерный форум, киберфорум
C++/CLI
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/6: Рейтинг темы: голосов - 6, средняя оценка - 4.50
0 / 0 / 0
Регистрация: 14.06.2014
Сообщений: 2

Авторизация на Яндексе: cookies не передаются от функции к функции

15.06.2014, 20:04. Показов 1141. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Делаю программу, эмитирующую работу в яндексе, по сути парсер. За основу взял исходник парсера на rabota.mail.ru. Там все работает,a на яндексе не передаются cookies от функции к функции. Подскажите, что не так

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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
#pragma endregion
        
        
        CookieCollection^ cooks = gcnew CookieCollection();
 
        void cook() // в этой функции регистрация проходит
        {
            HttpWebRequest^ req0 = (HttpWebRequest^)HttpWebRequest::Create("http://ya.ru/");
            req0->UserAgent = "Mozilla/5.0 (Windows; U; Win98; en-US; rv:0.9.2) Gecko/20010726 Netscape6/6.1";
            req0->CookieContainer = gcnew CookieContainer();
            HttpWebResponse^ resp0 = (HttpWebResponse^)req0->GetResponse();
 
 
            String^ str = "https://passport.yandex.ru/passport?mode=auth&from=mail&origin=hostroot_reliable_l_ppokrovsky_style&retpath=https%3A%2F%2Fmail.yandex.ru";
            HttpWebRequest^ req = (HttpWebRequest^)HttpWebRequest::Create(str);
            req->AllowAutoRedirect = false;
            req->UserAgent = "Mozilla/5.0 (Windows; U; Win98; en-US; rv:0.9.2) Gecko/20010726 Netscape6/6.1";
            req->CookieContainer = gcnew CookieContainer();
            req->CookieContainer->Add(resp0->Cookies);
            req->ContentType = "application/x-www-form-urlencoded";
            req->Method = "POST";
            String^ poststr = "login=dimaplanoff&passwd=******&twoweeks=yes&timestamp=" + Convert::ToString(DateTime::Now);
            array<Byte>^ byte = Encoding::ASCII->GetBytes(poststr);
            req->ContentLength = byte->Length;
            Stream^ stream = req->GetRequestStream();
            stream->Write(byte, 0, byte->Length);
            stream->Close();
            HttpWebResponse^ resp = (HttpWebResponse^)req->GetResponse();
 
            cooks = resp->Cookies;
            
            resp0->Close();
            resp->Close();
        }
 
        String^ sitear(String^ str)// а тут cookies теряются
        {
            HttpWebRequest^ req = (HttpWebRequest^)HttpWebRequest::Create(str);
            req->UserAgent = "Mozilla/5.0 (Windows; U; Win98; en-US; rv:0.9.2) Gecko/20010726 Netscape6/6.1";
            req->CookieContainer = gcnew CookieContainer;
            req->CookieContainer->Add(cooks);
            HttpWebResponse^ resp = (HttpWebResponse^)req->GetResponse();
 
            StreamReader^ sr = gcnew StreamReader(resp->GetResponseStream(), Encoding::UTF8);
            String^ ret = sr->ReadToEnd();
            sr->Close();
            resp->Close();
            return ret;
        }
 
    private: System::Void button1_Click(System::Object^  sender, System::EventArgs^  e) 
    {
                 cook();
                 String^ instr = sitear("http://ya.ru/");
                 textBox2->Text = instr;
    }
Добавлено через 21 час 46 минут
Нагуглил, что для https нужно прикручивать сертификат.
Делаю так:
C++
1
req->ClientCertificates->Add(X509Certificate::CreateFromCertFile("-.mail.ru.crt"));
результат отрицательный (
Есть идеи?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
15.06.2014, 20:04
Ответы с готовыми решениями:

Не передаются cookies (secure?) авторизация на mail.ru
Вот мой ужасный тестовый код. Проблема в том, что не все кукисы, которые mail.ru устанавливает, передаются. Те что secure,( не сохраняются...

В функции не передаются массивы символов
в функции не передаются массивы символов, при проверке на то что находится внутри массива вместо значений выдаются квадраты. вот код:...

Groovy задание с использованием пользовательской функции, все параметры передаются в функцию
Даны два действительных числа x и y . Вычислить их сумму, разность, произведение и частное.

1
 Аватар для SaweR
29 / 29 / 4
Регистрация: 29.09.2009
Сообщений: 177
23.06.2014, 12:18
Насколько мне известно, авторизация на яндексе - это многоэтапный процесс с кучей редиректов. В общем, лучше делать авторизацию с помощью IE или webkit или пишите свой движок на базе HttpWebRequest/HttpWebResponse который будет поддерживать перенаправления.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
23.06.2014, 12:18
Помогаю со студенческими работами здесь

Каким образом передаются значения из функции и процедуры в основную программу
??????

Определить какие данные и какому скрипту/функции передаются на обработку
Есть форма &lt;form method=&quot;post&quot; class=&quot;goodsImportForm&quot; data-imported=&quot;1&quot; class=&quot;uk-form&quot;&gt; &lt;input type=&quot;hidden&quot;...

Из Cookies в Session авторизация
Здравствуйте, помогите мне пожалуйста заменить сохранение в куки на сессии! Вот код страницы: &lt;? include('connectdb.php');//...

Авторизация с использованием Cookies
Я вот первый раз такое делаю и не понимаю... Как вот получить куки. С помощью Fiddlera, я узнал что есть csftoken и sessionid..Вот какой...

Авторизация на яндексе
Есть 2 едита,в первом надо ввести свой логин от ящика во второе поле надо ввести пароль!как это сделать?


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через 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 На первой гифке отладочные линии отключены, а на второй включены:. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru