ML
April 2, 2019, 4:48 p.m.

Как использовать куки в последующих запросах? QT

Код

void ThreadHttpDownload::run()
{
    QNetworkAccessManager *manager = new QNetworkAccessManager;
    QNetworkCookieJar *cookieJar = new QNetworkCookieJar(manager);

    manager->setCookieJar(cookieJar);

    connect(manager, SIGNAL(finished(QNetworkReply*)),
             this, SLOT(replyFinished(QNetworkReply*)), Qt::DirectConnection);

    manager->get(QNetworkRequest(QUrl(link)));
    manager->get(QNetworkRequest(QUrl(link)));
    exec();
}


void ThreadHttpDownload::replyFinished(QNetworkReply *reply)
{
    QVariant varCookies;
    QList<QNetworkCookie> cookies;
    varCookies = reply->header(QNetworkRequest::SetCookieHeader);
    cookies = varCookies.value<QList<QNetworkCookie>>();

    qDebug() << cookies;
}

Дебаг

(QNetworkCookie("sid=X62ISFyjka2vRkvtk5axAg==; path=/"))
(QNetworkCookie("sid=X62ISFyjka2vRkvtk5ayAg==; path=/"))

Анализер

Как быть?

10% refund of hotel reservation amount on Booking
10% refund of hotel reservation amount on Booking
We offer a link with a 10% return on the amount of the order when booking a hotel through Booking
1

Добрый день

Из полученного запроса в методе replyFinished забираете Coockie и сохраняете их в какую-нибудь переменную не локально в метода, в поле класса. То есть тото QList нужно сохранить в переменной, которая будет объявлено в заголовочном файле.

А дальше при запросе устанавливаете из в QNetworkAccessManager через QNetworkCookieJar . QNetworkCookieJar имеет методы insertCookie , deleteCookie. А QNetworkAccessManager имеет метод setCookieJar . Вот этими методами и нужно оперировать.

0

Comments

Only authorized users can post comments.
Please, Log in or Sign up
Last comments
June 24, 2019, 10:23 a.m.
Евгений Легоцкой

Хорошо, ну будут проблемы помимо того, что касается статей, то не стесняйтесь задавать вопросы на форуме.
МБ
June 24, 2019, 10:21 a.m.
Михаил Булатов

Извиняюсь, все работает(из-за невнимательности).
June 24, 2019, 9:52 a.m.
Евгений Легоцкой

Придётся делать ещё сигнал в дочернем qml и пробрасывать через коннекты и обработчики. А вообще нужно смотреть конкретный код и что вы пытаетесь сделать. Так что лучше будет, если вы зад...
June 21, 2019, 8:31 a.m.
Ruslan Polupan

Вот моя строка по которой все отлично сработало %cqtdeployer% -bin c:/CentralMposKeys/CentalMposKeys.exe -qmake c:/Qt/5.12.2/mingw73_64/bin/qmake.exe
June 21, 2019, 8:24 a.m.
Андрей Янкович

Возможно кому то пригодится сqtdeployer для windows работает точно так же как и для Linux разница лишь в команде запуска Linux: cqtdeployer Windows: %cqtdeployer...
Now discuss on the forum
June 24, 2019, 2:36 p.m.
Михаиллл

Нашел проект подключения к вебсокету.Но по моему адресу не могу подключиться.Нужно ли для этого использовать библиотеки?Вы не знаете адрес вебсокета, на котором можно проверить с...
June 24, 2019, 2:07 p.m.
Евгений Легоцкой

Я пока даже не знаю, а какой код самого подключения? использовали ожидание на подключение? Так делали? socket->connectToServer("market");if (socket->waitForConnected(1000)) ...
June 24, 2019, 1:19 p.m.
IscanderChe

// widget.cpp#include "widget.h"#include <QTableView>#include <QVBoxLayout>#include "checkboxdelegate.h"#include "comboboxdelegate.h"#include "mytableview.h"#include <QSqlD...
June 24, 2019, 11:16 a.m.
BlinCT

Хорошо, с этим понятно. Вот есть такой набор каких то кнопок. Цифры отображают в каком порядке должен менятся фокус.1. Как правильнее сделать отображение активного обьекта...
e
June 24, 2019, 10:58 a.m.
evgenm27

Спасибо за ответ, буду пробовать
Looking for a Job?
10,000.00 руб. - 15,000.00 руб.
Нужен помощник для создания API.
Moscow, Moscow, Russia
25,000.00 руб. - 30,000.00 руб.
Разработчик Qt/C++
Barnaul, Altai Krai, Russia

For registered users on the site there is a minimum amount of advertising

EVILEG
About
Services
Join us
© EVILEG 2015-2019
Recommend hosting TIMEWEB