So i set a QnetworkCookieJar for my QNetworkAccessManager
//Setup QNetwork
loginnam = new QNetworkAccessManager();
//Cookies
NetworkJar njarobj;
loginnam->setCookieJar(&njarobj);
njarobj.setParent(0);
//Setup QNetwork
loginnam = new QNetworkAccessManager();
//Cookies
NetworkJar njarobj;
loginnam->setCookieJar(&njarobj);
njarobj.setParent(0);
To copy to clipboard, switch view to plain text mode
and in Qt Documentation :
In order to implement your own security policy, override the QNetworkCookieJar::cookiesForUrl() and QNetworkCookieJar::setCookiesFromUrl() virtual functions. Those functions are called by QNetworkAccessManager when it detects a new cookie.
What if I don't want to implement my own security policy or whatever, do I need to implement my own setCookiesFromUrl ?
Don't I need to specify the location to store cookies? But I don't see that function, so I assume I'll need to reimplement SetCookiesFromUrl to store to disk and CookiesFromUrl to get from disk?
Using QFile?
Networkjar.h
#ifndef NETWORKJAR_H
#define NETWORKJAR_H
#include <QNetworkCookieJar>
class NetworkJar: public QNetworkCookieJar
{
public:
NetworkJar();
bool setCookiesFromUrl
(const QList<QNetworkCookie>
&cookieList,
const QUrl &url
);
QList<QNetworkCookie> cookiesForUrl
(const QUrl &url
) const;
};
#endif // NETWORKJAR_H
#ifndef NETWORKJAR_H
#define NETWORKJAR_H
#include <QNetworkCookieJar>
class NetworkJar: public QNetworkCookieJar
{
public:
NetworkJar();
bool setCookiesFromUrl(const QList<QNetworkCookie> &cookieList, const QUrl &url);
QList<QNetworkCookie> cookiesForUrl(const QUrl &url) const;
};
#endif // NETWORKJAR_H
To copy to clipboard, switch view to plain text mode
Networkjar.cpp
#include "networkjar.h"
#include <QFile>
#include <QDateTime>
#include <QTextStream>
NetworkJar::NetworkJar()
{
}
bool NetworkJar
::setCookiesFromUrl(const QList<QNetworkCookie>
&cookieList,
const QUrl &url
) {
QList<QNetworkCookie> cookies = QNetworkCookieJar::allCookies();
QFile cookiesfile
("Cookies");
if (!cookiesfile.
open(QFile::WriteOnly |
QFile::Text)) {
return false;
}
foreach (QNetworkCookie cookie, cookieList)
{
cookies += cookie;
out << "Name:" << cookie.name() << "Value:" << cookie.value() << "Path:" << cookie.path() << "Expire Date:" << cookie.expirationDate().toString();
}
return true;
}
QList<QNetworkCookie> NetworkJar
::cookiesForUrl(const QUrl &url
) const{
//Later
}
#include "networkjar.h"
#include <QFile>
#include <QDateTime>
#include <QTextStream>
NetworkJar::NetworkJar()
{
}
bool NetworkJar::setCookiesFromUrl(const QList<QNetworkCookie> &cookieList, const QUrl &url)
{
QList<QNetworkCookie> cookies = QNetworkCookieJar::allCookies();
QFile cookiesfile("Cookies");
QTextStream out(&cookiesfile);
if (!cookiesfile.open(QFile::WriteOnly | QFile::Text))
{
return false;
}
foreach (QNetworkCookie cookie, cookieList)
{
cookies += cookie;
out << "Name:" << cookie.name() << "Value:" << cookie.value() << "Path:" << cookie.path() << "Expire Date:" << cookie.expirationDate().toString();
}
return true;
}
QList<QNetworkCookie> NetworkJar::cookiesForUrl(const QUrl &url) const
{
//Later
}
To copy to clipboard, switch view to plain text mode
Bookmarks