![]() |
Qt 6.x
The Qt SDK
|
The QNetworkCookieJar class implements a simple jar of QNetworkCookie objects. More...
#include <qnetworkcookiejar.h>
Public Member Functions | |
QNetworkCookieJar (QObject *parent=nullptr) | |
Creates a QNetworkCookieJar object and sets the parent object to be parent. | |
virtual | ~QNetworkCookieJar () |
Destroys this cookie jar object and discards all cookies stored in it. | |
virtual QList< QNetworkCookie > | cookiesForUrl (const QUrl &url) const |
Returns the cookies to be added to when a request is sent to url. | |
virtual bool | setCookiesFromUrl (const QList< QNetworkCookie > &cookieList, const QUrl &url) |
Adds the cookies in the list cookieList to this cookie jar. | |
virtual bool | insertCookie (const QNetworkCookie &cookie) |
virtual bool | updateCookie (const QNetworkCookie &cookie) |
virtual bool | deleteCookie (const QNetworkCookie &cookie) |
![]() | |
Q_INVOKABLE | QObject (QObject *parent=nullptr) |
Constructs an object with parent object parent. | |
virtual | ~QObject () |
Destroys the object, deleting all its child objects. | |
virtual bool | event (QEvent *event) |
This virtual function receives events to an object and should return true if the event e was recognized and processed. | |
virtual bool | eventFilter (QObject *watched, QEvent *event) |
Filters events if this object has been installed as an event filter for the watched object. | |
QString | objectName () const |
Q_WEAK_OVERLOAD void | setObjectName (const QString &name) |
Sets the object's name to name. | |
void | setObjectName (QAnyStringView name) |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. | |
QBindable< QString > | bindableObjectName () |
bool | isWidgetType () const |
Returns true if the object is a widget; otherwise returns false . | |
bool | isWindowType () const |
Returns true if the object is a window; otherwise returns false . | |
bool | isQuickItemType () const |
Returns true if the object is a QQuickItem; otherwise returns false . | |
bool | signalsBlocked () const noexcept |
Returns true if signals are blocked; otherwise returns false . | |
bool | blockSignals (bool b) noexcept |
If block is true, signals emitted by this object are blocked (i.e., emitting a signal will not invoke anything connected to it). | |
QThread * | thread () const |
Returns the thread in which the object lives. | |
void | moveToThread (QThread *thread) |
Changes the thread affinity for this object and its children. | |
int | startTimer (int interval, Qt::TimerType timerType=Qt::CoarseTimer) |
This is an overloaded function that will start a timer of type timerType and a timeout of interval milliseconds. | |
int | startTimer (std::chrono::milliseconds time, Qt::TimerType timerType=Qt::CoarseTimer) |
void | killTimer (int id) |
Kills the timer with timer identifier, id. | |
template<typename T > | |
T | findChild (const QString &aName=QString(), Qt::FindChildOptions options=Qt::FindChildrenRecursively) const |
Returns the child of this object that can be cast into type T and that is called name, or \nullptr if there is no such object. | |
template<typename T > | |
QList< T > | findChildren (const QString &aName, Qt::FindChildOptions options=Qt::FindChildrenRecursively) const |
Returns all children of this object with the given name that can be cast to type T, or an empty list if there are no such objects. | |
template<typename T > | |
QList< T > | findChildren (Qt::FindChildOptions options=Qt::FindChildrenRecursively) const |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. | |
const QObjectList & | children () const |
Returns a list of child objects. | |
void | setParent (QObject *parent) |
Makes the object a child of parent. | |
void | installEventFilter (QObject *filterObj) |
Installs an event filter filterObj on this object. | |
void | removeEventFilter (QObject *obj) |
Removes an event filter object obj from this object. | |
QMetaObject::Connection | connect (const QObject *sender, const char *signal, const char *member, Qt::ConnectionType type=Qt::AutoConnection) const |
bool | disconnect (const char *signal=nullptr, const QObject *receiver=nullptr, const char *member=nullptr) const |
bool | disconnect (const QObject *receiver, const char *member=nullptr) const |
void | dumpObjectTree () const |
Dumps a tree of children to the debug output. | |
void | dumpObjectInfo () const |
Dumps information about signal connections, etc. | |
bool | setProperty (const char *name, const QVariant &value) |
Sets the value of the object's name property to value. | |
bool | setProperty (const char *name, QVariant &&value) |
QVariant | property (const char *name) const |
Returns the value of the object's name property. | |
QList< QByteArray > | dynamicPropertyNames () const |
QBindingStorage * | bindingStorage () |
const QBindingStorage * | bindingStorage () const |
QObject * | parent () const |
Returns a pointer to the parent object. | |
bool | inherits (const char *classname) const |
Returns true if this object is an instance of a class that inherits className or a QObject subclass that inherits className; otherwise returns false . | |
Protected Member Functions | |
QList< QNetworkCookie > | allCookies () const |
Returns all cookies stored in this cookie jar. | |
void | setAllCookies (const QList< QNetworkCookie > &cookieList) |
Sets the internal list of cookies held by this cookie jar to be cookieList. | |
virtual bool | validateCookie (const QNetworkCookie &cookie, const QUrl &url) const |
![]() | |
QObject * | sender () const |
Returns a pointer to the object that sent the signal, if called in a slot activated by a signal; otherwise it returns \nullptr. | |
int | senderSignalIndex () const |
int | receivers (const char *signal) const |
Returns the number of receivers connected to the signal. | |
bool | isSignalConnected (const QMetaMethod &signal) const |
virtual void | timerEvent (QTimerEvent *event) |
This event handler can be reimplemented in a subclass to receive timer events for the object. | |
virtual void | childEvent (QChildEvent *event) |
This event handler can be reimplemented in a subclass to receive child events. | |
virtual void | customEvent (QEvent *event) |
This event handler can be reimplemented in a subclass to receive custom events. | |
virtual void | connectNotify (const QMetaMethod &signal) |
virtual void | disconnectNotify (const QMetaMethod &signal) |
QObject (QObjectPrivate &dd, QObject *parent=nullptr) | |
Additional Inherited Members | |
![]() | |
void | deleteLater () |
\threadsafe | |
![]() | |
void | destroyed (QObject *=nullptr) |
This signal is emitted immediately before the object obj is destroyed, after any instances of QPointer have been notified, and cannot be blocked. | |
void | objectNameChanged (const QString &objectName, QPrivateSignal) |
This signal is emitted after the object's name has been changed. | |
![]() | |
static QMetaObject::Connection | connect (const QObject *sender, const char *signal, const QObject *receiver, const char *member, Qt::ConnectionType=Qt::AutoConnection) |
\threadsafe | |
static QMetaObject::Connection | connect (const QObject *sender, const QMetaMethod &signal, const QObject *receiver, const QMetaMethod &method, Qt::ConnectionType type=Qt::AutoConnection) |
template<typename Func1 , typename Func2 > | |
static QMetaObject::Connection | connect (const typename QtPrivate::FunctionPointer< Func1 >::Object *sender, Func1 signal, const typename QtPrivate::ContextTypeForFunctor< Func2 >::ContextType *context, Func2 &&slot, Qt::ConnectionType type=Qt::AutoConnection) |
template<typename Func1 , typename Func2 > | |
static QMetaObject::Connection | connect (const typename QtPrivate::FunctionPointer< Func1 >::Object *sender, Func1 signal, Func2 &&slot) |
static bool | disconnect (const QObject *sender, const char *signal, const QObject *receiver, const char *member) |
\threadsafe | |
static bool | disconnect (const QObject *sender, const QMetaMethod &signal, const QObject *receiver, const QMetaMethod &member) |
static bool | disconnect (const QMetaObject::Connection &) |
Disconnect a connection. | |
template<typename Func1 , typename Func2 > | |
static bool | disconnect (const typename QtPrivate::FunctionPointer< Func1 >::Object *sender, Func1 signal, const typename QtPrivate::FunctionPointer< Func2 >::Object *receiver, Func2 slot) |
template<typename Func1 > | |
static bool | disconnect (const typename QtPrivate::FunctionPointer< Func1 >::Object *sender, Func1 signal, const QObject *receiver, void **zero) |
![]() | |
QScopedPointer< QObjectData > | d_ptr |
![]() | |
QString | objectName |
the name of this object | |
![]() | |
template< class T > T | qobject_cast (const QObject *object) |
Returns the given object cast to type T if the object is of type T (or of a subclass); otherwise returns \nullptr. | |
template< typename T > T | qFindChildqFindChildren (const QObject *obj, const QString &name)() |
template< typename T > QList< T > | qFindChildrenqFindChildren (const QObject *obj, const QString &name)() |
QObjectList | |
\macro Q_CLASSINFO(Name, Value) | |
The QNetworkCookieJar class implements a simple jar of QNetworkCookie objects.
Cookies are small bits of information that stateless protocols like HTTP use to maintain some persistent information across requests.
A cookie is set by a remote server when it replies to a request and it expects the same cookie to be sent back when further requests are sent.
The cookie jar is the object that holds all cookies set in previous requests. Web browsers save their cookie jars to disk in order to conserve permanent cookies across invocations of the application.
QNetworkCookieJar does not implement permanent storage: it only keeps the cookies in memory. Once the QNetworkCookieJar object is deleted, all cookies it held will be discarded as well. If you want to save the cookies, you should derive from this class and implement the saving to disk to your own storage format.
This class implements only the basic security recommended by the cookie specifications and does not implement any cookie acceptance policy (it accepts all cookies set by any requests). In order to override those rules, you should reimplement the cookiesForUrl() and setCookiesFromUrl() virtual functions. They are called by QNetworkReply and QNetworkAccessManager when they detect new cookies and when they require cookies.
Definition at line 17 of file qnetworkcookiejar.h.
Creates a QNetworkCookieJar object and sets the parent object to be parent.
The cookie jar is initialized to empty.
Definition at line 71 of file qnetworkcookiejar.cpp.
|
virtual |
Destroys this cookie jar object and discards all cookies stored in it.
Cookies are not saved to disk in the QNetworkCookieJar default implementation.
If you need to save the cookies to disk, you have to derive from QNetworkCookieJar and save the cookies to disk yourself.
Definition at line 84 of file qnetworkcookiejar.cpp.
|
protected |
Returns all cookies stored in this cookie jar.
This function is suitable for derived classes to save cookies to disk, as well as to implement cookie expiration and other policies.
Definition at line 95 of file qnetworkcookiejar.cpp.
|
virtual |
Returns the cookies to be added to when a request is sent to url.
This function is called by the default QNetworkAccessManager::createRequest(), which adds the cookies returned by this function to the request being sent.
If more than one cookie with the same name is found, but with differing paths, the one with longer path is returned before the one with shorter path. In other words, this function returns cookies sorted decreasingly by path length.
The default QNetworkCookieJar class implements only a very basic security policy (it makes sure that the cookies' domain and path match the reply's). To enhance the security policy with your own algorithms, override cookiesForUrl().
Qt6?: remove when compliant with RFC6265
Definition at line 193 of file qnetworkcookiejar.cpp.
References QString::contains(), QDateTime::currentDateTimeUtc(), d, QUrl::host(), isEncrypted(), isParentDomain(), isParentPath(), it, QString::mid(), now, QUrl::path(), qIsEffectiveTLD(), QUrl::scheme(), QSet< T >::size(), QString::startsWith(), and url.
|
virtual |
Returns true
if a cookie was deleted, false otherwise.
Definition at line 299 of file qnetworkcookiejar.cpp.
Referenced by insertCookie(), and updateCookie().
|
virtual |
Returns true
if cookie was added, false otherwise.
If a cookie with the same identifier already exists in the cookie jar, it will be overridden.
Definition at line 258 of file qnetworkcookiejar.cpp.
References QDateTime::currentDateTimeUtc(), d, deleteCookie(), QNetworkCookie::expirationDate(), QNetworkCookie::isSessionCookie(), and now.
Referenced by setCookiesFromUrl(), and updateCookie().
|
protected |
Sets the internal list of cookies held by this cookie jar to be cookieList.
This function is suitable for derived classes to implement loading cookies from permanent storage, or their own cookie acceptance policies by reimplementing setCookiesFromUrl().
Definition at line 109 of file qnetworkcookiejar.cpp.
References d.
|
virtual |
Adds the cookies in the list cookieList to this cookie jar.
Before being inserted cookies are normalized.
Returns true
if one or more cookies are set for url, otherwise false.
If a cookie already exists in the cookie jar, it will be overridden by those in cookieList.
The default QNetworkCookieJar class implements only a very basic security policy (it makes sure that the cookies' domain and path match the reply's). To enhance the security policy with your own algorithms, override setCookiesFromUrl().
Also, QNetworkCookieJar does not have a maximum cookie jar size. Reimplement this function to discard older cookies to create room for new ones.
Definition at line 163 of file qnetworkcookiejar.cpp.
References insertCookie(), url, and validateCookie().
Referenced by QNetworkReplyHttpImplPrivate::_q_metaDataChanged(), and QNetworkReplyImplPrivate::metaDataChanged().
|
virtual |
Returns true
if cookie was updated, false if no cookie in the jar matches the identifier of cookie.
Definition at line 284 of file qnetworkcookiejar.cpp.
References deleteCookie(), and insertCookie().
|
protectedvirtual |
true
if the domain and path of cookie are valid, false otherwise. The url parameter is used to determine if the domain specified in the cookie is allowed. Definition at line 318 of file qnetworkcookiejar.cpp.
References QNetworkCookie::domain(), QUrl::host(), isParentDomain(), QString::mid(), qIsEffectiveTLD(), QString::startsWith(), and url.
Referenced by setCookiesFromUrl().