Как мне сохранить куки с Qt?
Я пытаюсь сохранить файлы cookie, созданные моим приложением, на диске, напримерC:\Users\Username\AppData\Local\MyCompany\MyApp
, Я реализовал веб-просмотр и почти закончил кодировать мой простой браузер. Последнее, что нужно сделать, это сохранить куки.
Я могу qDebug () использовать файлы cookie, полученные из веб-приложения, и они показывают, что файлы cookie сформированы правильно, но я а) не уверен, куда идти, и б) не уверен на 100%, как сделать подкласс класса cookiejar?
Ниже я создаю свой объект cookiejar в конструкторе MainWindow
view = new QWebView(this);
jar = new QNetworkCookieJar;
view->page()->networkAccessManager()->setCookieJar(jar);
И в моем слоте для ответов я вижу файл cookie, содержащийся в ответе, и пытаюсь сохранить его, но ничего не происходит, и я не получаю ошибок времени выполнения. В этом нет ничего особенного, и мы видели несколько постов, в которых указывалось сделать подкласс QNetworkCookieJar, но не делали подкласса в Qt / C ++ раньше.
Есть ли простой способ хранения куки, я не ищу ничего модного. Файлы cookie просто проверяют, установлены ли некоторые флажки на странице входа.
// SLOT that accepts the read data from the webpage
void MainWindow::slotReplyFinished(QNetworkReply *reply){
if(reply->isFinished()){
QVariant variantCookies = reply->header(QNetworkRequest::SetCookieHeader);
QList<QNetworkCookie> cookies = qvariant_cast<QList<QNetworkCookie> >(variantCookies);
qDebug() << "Cookies reply: " << cookies;
QNetworkCookie cookie; //Create a cookie
jar = new QNetworkCookieJar;
//view->page()->networkAccessManager()->setCookieJar(jar);
jar->setCookiesFromUrl(cookies, reply->request().url());
//qDebug() << "Saved cookies: " << jar->getAllCookies();
}
qDebug() << "Network reply: " << reply->errorString() << reply->error() << reply->request().url();
}