persistentcookiejar.h 890 B

123456789101112131415161718192021222324252627282930313233343536
  1. #ifndef PERSISTENTCOOKIEJAR_H
  2. #define PERSISTENTCOOKIEJAR_H
  3. #include <QtNetwork>
  4. #include <QObject>
  5. class PersistentCookieJar : public QNetworkCookieJar {
  6. public:
  7. PersistentCookieJar(QObject *parent) : QNetworkCookieJar(parent) { load(); }
  8. ~PersistentCookieJar() { save(); }
  9. public:
  10. void save()
  11. {
  12. QList<QNetworkCookie> list = allCookies();
  13. QByteArray data;
  14. foreach (QNetworkCookie cookie, list) {
  15. if (!cookie.isSessionCookie()) {
  16. data.append(cookie.toRawForm());
  17. data.append("\n");
  18. }
  19. }
  20. QSettings settings;
  21. settings.setValue("Cookies",data);
  22. }
  23. void load()
  24. {
  25. QSettings settings;
  26. QByteArray data = settings.value("Cookies").toByteArray();
  27. setAllCookies(QNetworkCookie::parseCookies(data));
  28. }
  29. };
  30. #endif // PERSISTENTCOOKIEJAR_H