crossplatform.ru

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

 
Ответить в данную темуНачать новую тему
> QNetworkAccessManager и авторизация на сайте.
ksk-
  опции профиля:
сообщение 13.10.2011, 21:09
Сообщение #1


Новичок


Группа: Новичок
Сообщений: 5
Регистрация: 12.3.2011
Пользователь №: 2492

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




Репутация:   0  


Всем привет. Решил написать программу, которая должна юзать Vkontakte.ru API. Привожу фрагмент кода.
#include "vkapi.h"
#include <QRegExp>

VkAPI::VkAPI(QString Email, QString Pass, QObject *parent) :
    QObject(parent)
{
    email = Email;
    pass = Pass;
}

void VkAPI::startRequest(QUrl url, QByteArray post)
{
    reply = qnam.post(QNetworkRequest(url), post);
    connect(reply, SIGNAL(finished()), this, SLOT(replyFinished()));
}
void VkAPI::login()
{
    url = QUrl("http://api.vkontakte.ru/oauth/authorize?client_id=2637723&scope=audio&redirect_uri=http://api.vkontakte.ru/blank.html&display=wap&response_type=token");
    startRequest(url, "");
    QString ip_h;
    QString to;
    QRegExp re("<input type=\"hidden\" name=\"ip_h\" value=\"(.*)\" />.*<input type=\"hidden\" name=\"to\" value=\"(.*)\">");
    re.setMinimal(true);
    int pos(0);
    while ((pos = re.indexIn(html, pos)) != -1)
    {
        ip_h = re.cap(1);
        to = re.cap(2);
        pos += re.matchedLength();
    }
    QByteArray post = "email=" + email.toUtf8() +
                                "&from_host=api.vkontakte.ru&ip_h=" + ip_h.toUtf8() +
                                "&pass=" + pass.toUtf8() +
                                "&q=1&to=" + to.toUtf8();
    url = QUrl("https://login.vk.com/?act=login&soft=1&utf8=1");
    startRequest(url, post);
}

void VkAPI::replyFinished()
{
    QVariant redirectionTarget = reply->attribute(QNetworkRequest::RedirectionTargetAttribute);
    if (!redirectionTarget.isNull()) {
        QUrl newUrl = url.resolved(redirectionTarget.toUrl());
        url = newUrl;
        reply->deleteLater();
        startRequest(url, "");
        return;
    }
    else {
        html = reply->readAll();
    }
    reply->deleteLater();
    reply = 0;
}


Только почему-то я не могу авторизоваться. Что я делаю не так?
С сетью в Qt имею дело впервые и очень нуждаюсь в помощи более опытных.
Заранее благодарен.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
PAFOS
  опции профиля:
сообщение 17.10.2011, 16:36
Сообщение #2


Активный участник
***

Группа: Участник
Сообщений: 258
Регистрация: 27.12.2010
Из: Дмитров
Пользователь №: 2309

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




Репутация:   8  


тут куча косяков вроде, но проблема наверное в SSL....

тут либо SSL либа не найдена (если для винды).
либо не обрабатываешь события сертификатов SSL
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

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


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




RSS Текстовая версия Сейчас: 29.4.2024, 4:38