crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

> Так ли логиниться на почту?
Rocky
  опции профиля:
сообщение 10.12.2010, 12:36
Сообщение #1


Старейший участник
****

Группа: Участник
Сообщений: 530
Регистрация: 22.12.2008
Из: Санкт-Петербург
Пользователь №: 463

Спасибо сказали: 22 раз(а)




Репутация:   7  


Всем привет! Разбираюсь с QtNetwork/webkit. Для понимания сути решил написать программу, которая бы логинилась на сайт и получала новые письма. Вот написал такой код (класс производный от QNetworkAccessManager, экземпляр создается в main):
CTest::CTest(QObject *pParent) : QNetworkAccessManager(pParent)
{
    QObject::connect(this, SIGNAL(authenticationRequired(QNetworkReply*, QAuthenticator*)),
        SLOT(slotAuthenticationRequired(QNetworkReply*,QAuthenticator*)));
    QObject::connect(this, SIGNAL(finished(QNetworkReply*)), this, SLOT(slotReplyFinished(QNetworkReply*)));
    QObject::connect(this, SIGNAL(sslErrors(QNetworkReply*, const QList<QSslError>&)), this,     
        SLOT(slotSslErrors(QNetworkReply*, const QList<QSslError>&)));

    Login(QUrl("http://www.yandex.ru"), "login", "pass");
}

void CTest::slotReadyRead()
{
    if (!m_pReply) return;
    QFile oFile("/home/evgeny/123");
    oFile.open(QIODevice::WriteOnly);
    oFile.write(m_pReply->readAll());
    oFile.close();
}

void CTest::Login(const QUrl& oUrl, const QString& sLogin, const QString& sPassword)
{
    QString sRequestString = "act=login&email=" + sLogin + "&pass=" + sPassword;
    QByteArray oRequestString = sRequestString.toAscii();

    QNetworkRequest oRequest(oUrl);
    m_pReply = this->post(oRequest, oRequestString);
    QObject::connect(m_pReply, SIGNAL(finished()), this, SLOT(slotFinished2()));
    QObject::connect(m_pReply, SIGNAL(readyRead()), this, SLOT(slotReadyRead()));
    QObject::connect(m_pReply, SIGNAL(error(QNetworkReply::NetworkError)), this, SLOT(slotError(QNetworkReply::NetworkError)));
}


slotReadyRead вызывается и в файле 123 вижу такое:
({id:"",login:A.isSessionValid()?A.getCookie("yandex_login")||"":"",yandexuid:A.getCookie("yandexuid"),locale:"ru",
retpath:window.location.toString(),"passport-host":"//passport.yandex.ru","pass-host":"//pass.yandex.ru","passport-msg":C.id,
"show-counters-percent":100},C))["show-counters"]=Math.round(Math.random()*100)<=C["show-counters-percent"];B(function()
{C.oframebust&&A.oframebust(C.oframebust)});return C});A.block||(A.block={});A.blockInit||(A.blockInit=function(C,D)
{C=C||document;D=D||".g-js";B(C).find(D).each(function(){var H=B(this),G=this.onclick?this.onclick():{},E=G.name||"",F=A.block

там много такого непонятного..... Вот хотел узнать (если кто знает), что это такое? =) Это нормально? Как узнать что я залогинился? И как сами письма получить?

Огромное спасибо если кто подскажет!

Сообщение отредактировал Rocky - 10.12.2010, 12:38
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
Sokoloff
  опции профиля:
сообщение 11.12.2010, 11:58
Сообщение #2


Участник
**

Группа: Участник
Сообщений: 237
Регистрация: 1.4.2009
Из: Москва
Пользователь №: 654

Спасибо сказали: 50 раз(а)




Репутация:   11  


Цитата(Rocky @ 10.12.2010, 12:36) *
Всем привет! Разбираюсь с QtNetwork/webkit. Для понимания сути решил написать программу, которая бы логинилась на сайт и получала новые письма.

Первое , возьми нормальный редактор (например бесплатный pspad), который умеет нормально показывать юниксовае переводы строк, станет понятнее. Второе поставь снифер (wireshark) и/или поставь что-то типа firebug и смотри что посылает/получает браузер.
Эта строка - cookie.

IMHO не самый удачный вариант для начала изучения. Я бы на твоем месте вначале потренировался с GET запросами (скажем поиск по гуглу), потом простые POST запросы, а потом уже погружение в дебри HTML-я (COOKIE, AJAX, сессии и.т.п). Это если тебе нужна работа с веб-страницами, а если интересует только передача данных по сети, то достаточно разобраться с первым пунктом.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме


Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 22.12.2024, 14:09