Форум русскоязычного сообщества Ubuntu


Автор Тема: Qt авторизация на сервере  (Прочитано 3183 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн _XDD_

  • Автор темы
  • Участник
  • *
  • Сообщений: 108
    • Просмотр профиля
Qt авторизация на сервере
« : 13 Октября 2013, 08:09:43 »
ничего не могу понять...

QNetworkReply * QNetworkAccessManager::post ( const QNetworkRequest & request, const QByteArray & data )



site = new QNetworkAccessManager;

//        "login=MArtemkaA@gmail.com&password=71244zp341&hop=&csrf=bf9c533058ef512c9896ZTIzYzBmMDE1YzBlZjUyY2M5M2EzNjU3M2RhNzRmZDhfMTM4MTYzMzc1NQ%3D%3D";

        QNetworkRequest request;
        request.setUrl( QUrl( "http://http://murclub.ru/" ) );


        QByteArray post = QString("login=MArtemkaA@gmail.com password=71244zp341");

        site->post(request, post);

что я делаю не так?
пароль и логин даже свои пишу тут, для этого и создавались))

Оффлайн quiet_readonly

  • Участник
  • *
  • Сообщений: 133
    • Просмотр профиля
Re: Qt авторизация на сервере
« Ответ #1 : 14 Октября 2013, 10:13:23 »
Для добавления параметров в Qt5 есть класс QUrlQuery, а в Qt4 у QUrl есть метод addQueryItem.

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

P.S. Возможно я напутал и для POST QUrlQuery не подойдёт.

shame

  • Гость
Re: Qt авторизация на сервере
« Ответ #2 : 14 Октября 2013, 12:28:22 »
А зачем вы сюда реальный пароль даете?

Оффлайн _XDD_

  • Автор темы
  • Участник
  • *
  • Сообщений: 108
    • Просмотр профиля
Re: Qt авторизация на сервере
« Ответ #3 : 14 Октября 2013, 14:05:09 »
shame,
он только для этого и делался.quiet_readonly,
спасибо)) буду вечером тестить)

Пользователь решил продолжить мысль 14 Октября 2013, 18:25:08:
quiet_readonly,
а как я post запрос сделаю, если все будет в QUrl?

        apiUrl.setUrl("http://login.murclub.ru/index.php?g=1");
        requestString = "71244zp341&MArtemkaA@gmail.com";

        QNetworkRequest request(apiUrl);
        manager.post(request, requestString);

        connect(&manager, SIGNAL(finished(QNetworkReply*)), this, SLOT(slotF(QNetworkReply*)));

должен приниматься в параметрах пароль и логин, но я похоже делаю что то не так, т.к в ответ

void slotF(QNetworkReply* r)
    {
        qDebug() << QString::fromUtf8(r->readAll());
    }

Цитировать
content-type missing in HTTP POST, defaulting to application/octet-stream
""

Пользователь решил продолжить мысль 14 Октября 2013, 20:50:02:
вопрос снят, решилось добавлением строки

request.setRawHeader("Content-Type", "application/x-www-form-urlencoded");
« Последнее редактирование: 14 Октября 2013, 20:50:02 от _XDD_ »

 

Страница сгенерирована за 0.076 секунд. Запросов: 24.