QNetworkCookieJar Class

Die Klasse QNetworkCookieJar implementiert ein einfaches Gefäß mit QNetworkCookie Objekten. Mehr...

Kopfzeile: #include <QNetworkCookieJar>
CMake: find_package(Qt6 REQUIRED COMPONENTS Network)
target_link_libraries(mytarget PRIVATE Qt6::Network)
qmake: QT += network
Vererbungen: QObject

Öffentliche Funktionen

QNetworkCookieJar(QObject *parent = nullptr)
virtual ~QNetworkCookieJar()
virtual QList<QNetworkCookie> cookiesForUrl(const QUrl &url) const
virtual bool deleteCookie(const QNetworkCookie &cookie)
virtual bool insertCookie(const QNetworkCookie &cookie)
virtual bool setCookiesFromUrl(const QList<QNetworkCookie> &cookieList, const QUrl &url)
virtual bool updateCookie(const QNetworkCookie &cookie)

Geschützte Funktionen

QList<QNetworkCookie> allCookies() const
void setAllCookies(const QList<QNetworkCookie> &cookieList)
virtual bool validateCookie(const QNetworkCookie &cookie, const QUrl &url) const

Detaillierte Beschreibung

Cookies sind kleine Informationseinheiten, die von zustandslosen Protokollen wie HTTP verwendet werden, um einige dauerhafte Informationen über Anfragen hinweg zu erhalten.

Ein Cookie wird von einem entfernten Server gesetzt, wenn er auf eine Anfrage antwortet, und er erwartet, dass derselbe Cookie zurückgeschickt wird, wenn weitere Anfragen gesendet werden.

Der Cookie-Jar ist das Objekt, das alle in früheren Anfragen gesetzten Cookies enthält. Webbrowser speichern ihre Cookie-Jars auf der Festplatte, um permanente Cookies über Aufrufe der Anwendung hinweg zu erhalten.

QNetworkCookieJar implementiert keine permanente Speicherung: es behält die Cookies nur im Speicher. Sobald das QNetworkCookieJar-Objekt gelöscht wird, werden alle Cookies, die es enthielt, ebenfalls verworfen. Wenn Sie die Cookies speichern wollen, sollten Sie von dieser Klasse ableiten und die Speicherung auf der Festplatte in Ihrem eigenen Speicherformat implementieren.

Diese Klasse implementiert nur die von den Cookie-Spezifikationen empfohlene Basissicherheit und keine Cookie-Akzeptanzregeln (sie akzeptiert alle von Anfragen gesetzten Cookies). Um diese Regeln außer Kraft zu setzen, sollten Sie die virtuellen Funktionen cookiesForUrl() und setCookiesFromUrl() neu implementieren. Sie werden von QNetworkReply und QNetworkAccessManager aufgerufen, wenn sie neue Cookies erkennen und wenn sie Cookies benötigen.

Siehe auch QNetworkCookie, QNetworkAccessManager, QNetworkReply, QNetworkRequest, und QNetworkAccessManager::setCookieJar().

Dokumentation der Mitgliedsfunktionen

[explicit] QNetworkCookieJar::QNetworkCookieJar(QObject *parent = nullptr)

Erzeugt ein QNetworkCookieJar-Objekt und setzt das übergeordnete Objekt auf parent.

Die Keksdose wird auf leer initialisiert.

[virtual noexcept] QNetworkCookieJar::~QNetworkCookieJar()

Zerstört dieses Cookie-Jar-Objekt und verwirft alle darin gespeicherten Cookies. In der Standardimplementierung von QNetworkCookieJar werden Cookies nicht auf der Festplatte gespeichert.

Wenn Sie die Cookies auf der Festplatte speichern möchten, müssen Sie von QNetworkCookieJar ableiten und die Cookies selbst auf der Festplatte speichern.

[protected] QList<QNetworkCookie> QNetworkCookieJar::allCookies() const

Gibt alle in diesem Cookie-Jar gespeicherten Cookies zurück. Diese Funktion eignet sich für abgeleitete Klassen zum Speichern von Cookies auf der Festplatte sowie zur Implementierung von Cookie-Ablauf- und anderen Richtlinien.

Siehe auch setAllCookies() und cookiesForUrl().

[virtual] QList<QNetworkCookie> QNetworkCookieJar::cookiesForUrl(const QUrl &url) const

Gibt die Cookies zurück, die hinzugefügt werden sollen, wenn eine Anfrage an url gesendet wird. Diese Funktion wird von der Standardfunktion QNetworkAccessManager::createRequest() aufgerufen, die die von dieser Funktion zurückgegebenen Cookies zu der gesendeten Anfrage hinzufügt.

Wenn mehr als ein Cookie mit demselben Namen, aber mit unterschiedlichen Pfaden gefunden wird, wird dasjenige mit dem längeren Pfad vor demjenigen mit dem kürzeren Pfad zurückgegeben. Mit anderen Worten: Diese Funktion gibt Cookies zurück, die absteigend nach Pfadlänge sortiert sind.

Die Standardklasse QNetworkCookieJar implementiert nur eine sehr einfache Sicherheitsrichtlinie (sie stellt sicher, dass die Domäne und der Pfad der Cookies mit denen der Antwort übereinstimmen). Um die Sicherheitsrichtlinien mit Ihren eigenen Algorithmen zu erweitern, überschreiben Sie cookiesForUrl().

Siehe auch setCookiesFromUrl() und QNetworkAccessManager::setCookieJar().

[virtual] bool QNetworkCookieJar::deleteCookie(const QNetworkCookie &cookie)

Löscht aus dem Cookie-Jar das Cookie, das den gleichen Bezeichner wie cookie hat.

Gibt true zurück, wenn ein Cookie gelöscht wurde, andernfalls false.

Siehe auch QNetworkCookie::hasSameIdentifier().

[virtual] bool QNetworkCookieJar::insertCookie(const QNetworkCookie &cookie)

Fügt cookie zu dieser Keksdose hinzu.

Gibt true zurück, wenn cookie hinzugefügt wurde, andernfalls false.

Wenn ein Cookie mit demselben Bezeichner bereits in der Keksdose vorhanden ist, wird er überschrieben.

[protected] void QNetworkCookieJar::setAllCookies(const QList<QNetworkCookie> &cookieList)

Setzt die interne Liste der Cookies, die in diesem Cookie-Jar gespeichert sind, auf cookieList. Diese Funktion ist für abgeleitete Klassen geeignet, um das Laden von Cookies aus dem permanenten Speicher oder ihre eigenen Cookie-Akzeptanzrichtlinien zu implementieren, indem sie setCookiesFromUrl() reimplementieren.

Siehe auch allCookies() und setCookiesFromUrl().

[virtual] bool QNetworkCookieJar::setCookiesFromUrl(const QList<QNetworkCookie> &cookieList, const QUrl &url)

Fügt die Cookies aus der Liste cookieList in diese Keksdose ein. Vor dem Einfügen werden die Cookies normalisiert.

Gibt true zurück, wenn ein oder mehrere Cookies für url gesetzt sind, andernfalls false.

Wenn bereits ein Cookie in der Cookie-Dose vorhanden ist, wird es durch das Cookie in cookieList überschrieben.

Die Standardklasse QNetworkCookieJar implementiert nur eine sehr einfache Sicherheitsrichtlinie (sie stellt sicher, dass die Domäne und der Pfad der Cookies mit denen der Antwort übereinstimmen). Um die Sicherheitsrichtlinie mit Ihren eigenen Algorithmen zu erweitern, überschreiben Sie setCookiesFromUrl().

Außerdem gibt es auf QNetworkCookieJar keine maximale Größe des Cookie-Behälters. Implementieren Sie diese Funktion neu, um ältere Cookies zu verwerfen und Platz für neue zu schaffen.

Siehe auch cookiesForUrl(), QNetworkAccessManager::setCookieJar(), und QNetworkCookie::normalize().

[virtual] bool QNetworkCookieJar::updateCookie(const QNetworkCookie &cookie)

Wenn ein Cookie mit der gleichen Kennung wie cookie in dieser Cookie-Dose existiert, wird es aktualisiert. Diese Funktion verwendet insertCookie().

Gibt true zurück, wenn cookie aktualisiert wurde, false, wenn kein Cookie in der Jar mit dem Bezeichner von cookie übereinstimmt.

Siehe auch QNetworkCookie::hasSameIdentifier().

[virtual protected] bool QNetworkCookieJar::validateCookie(const QNetworkCookie &cookie, const QUrl &url) const

Gibt true zurück, wenn die Domäne und der Pfad von cookie gültig sind, andernfalls false. Der Parameter url wird verwendet, um festzustellen, ob die im Cookie angegebene Domäne zulässig ist.

© 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.