QNetworkCookieJar Class

QNetworkCookieJar クラスは、QNetworkCookie オブジェクトのシンプルな jar を実装しています。さらに...

ヘッダー #include <QNetworkCookieJar>
CMake: find_package(Qt6 REQUIRED COMPONENTS Network)
target_link_libraries(mytarget PRIVATE Qt6::Network)
qmake: QT += network
継承: QObject

パブリック関数

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)

保護された関数

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

詳しい説明

クッキーは、HTTPのようなステートレス・プロトコルがリクエスト間で永続的な情報を保持するために使用する、小さな情報の断片です。

クッキーは、リクエストに応答するときにリモート・サーバーによって設定され、さらにリクエストが送信されたときに同じクッキーが送り返されることを期待します。

クッキー・ジャーは以前のリクエストで設定されたすべてのクッキーを保持するオブジェクトです。ウェブ・ブラウザは、アプリケーションの呼び出しにわたって永続的なクッキーを保存するために、クッキー・ジャーをディスクに保存します。

QNetworkCookieJar は永続的な保存を実装していません。QNetworkCookieJar オブジェクトが削除されると、保持していたすべてのクッキーも破棄されます。クッキーを保存したい場合は、このクラスから派生して、独自のストレージ・フォーマットにディスクへの保存を実装する必要があります。

このクラスはクッキーの仕様によって推奨される基本的なセキュリティだけを実装し、クッキーの受諾方針は実装しません(どのようなリクエストによっても設定されるすべてのクッキーを受諾します)。これらのルールをオーバーライドするには、cookiesForUrl() とsetCookiesFromUrl() 仮想関数を再実装する必要があります。これらの関数は、QNetworkReplyQNetworkAccessManager が新しいクッキーを検出するときと、クッキーを要求するときに呼び出されます。

QNetworkCookieQNetworkAccessManagerQNetworkReplyQNetworkRequestQNetworkAccessManager::setCookieJar()も参照してください

メンバ関数ドキュメント

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

QNetworkCookieJar オブジェクトを作成し、親オブジェクトをparent に設定します。

クッキー・ジャーは空に初期化されます。

[virtual noexcept] QNetworkCookieJar::~QNetworkCookieJar()

この cookie jar オブジェクトを破棄し、その中に保存されているすべての cookie を破棄します。QNetworkCookieJar デフォルトの実装では、クッキーはディスクに保存されません。

クッキーをディスクに保存する必要がある場合は、QNetworkCookieJar から派生して、自分でクッキーをディスクに保存しなければなりません。

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

このクッキー・ジャーに保存されているすべてのクッキーを返します。この関数は、派生クラスがクッキーをディスクに保存したり、クッキーの有効期限やその他のポリシーを実装するのに適しています。

setAllCookies() およびcookiesForUrl()も参照してください

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

リクエストがurl に送られるときに追加されるクッキーを返します。この関数はデフォルトのQNetworkAccessManager::createRequest()によって呼び出され、この関数によって返されたクッキーを送信されるリクエストに追加します。

同じ名前でパスが異なる複数のクッキーが見つかった場合、パスの長いものがパスの短いものより先に返されます。言い換えると、この関数はパスの長さ順にクッキーを返します。

デフォルトのQNetworkCookieJar クラスは非常に基本的なセキュリティ・ポリシーだけを実装しています(クッキーのドメインとパスがリプライのものと一致することを確認します)。独自のアルゴリズムでセキュリティ・ポリシーを強化するには、 cookiesForUrl()をオーバーライドしてください。

setCookiesFromUrl() およびQNetworkAccessManager::setCookieJar()も参照してください

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

cookie と同じ識別子を持つことがわかったクッキーをクッキー・ジャーから削除する。

クッキーが削除されたならtrue を返し、そうでなければ false を返します。

QNetworkCookie::hasSameIdentifier()も参照してください

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

このクッキー・ジャーにcookie を追加する。

cookie が追加された場合はtrue を、そうでない場合は false を返します。

同じ識別子を持つクッキーがすでにクッキー・ジャーに存在する場合、それは上書きされます。

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

このクッキー・ジャーが保持するクッキーの内部リストをcookieList に設定します。この関数は、派生クラスが永続的なストレージからクッキーをロードしたり、setCookiesFromUrl() を再実装して独自のクッキー受諾ポリシーを実装したりするのに適しています。

allCookies() およびsetCookiesFromUrl()も参照してください

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

リストcookieList のクッキーをこのクッキー・ジャーに追加します。クッキーは挿入される前に正規化されます。

一つ以上のクッキーがurl に設定されていればtrue を返し、そうでなければ false を返します。

クッキーがすでにクッキー・ジャーに存在する場合、そのクッキーはcookieList のものによって上書きされます。

デフォルトのQNetworkCookieJar クラスは非常に基本的なセキュリティ・ポリシーのみを実装しています(クッキーのドメ インとパスがリプライのものと一致することを確認します)。独自のアルゴリズムでセキュリティ・ポリシーを強化するには、setCookiesFromUrl() をオーバーライドしてください。

また、QNetworkCookieJar には最大クッキー・ジャー・サイズがありません。この関数を再実装して、古いクッキーを破棄し、新しいクッキーのためのスペースを作ってください。

cookiesForUrl()、QNetworkAccessManager::setCookieJar()、QNetworkCookie::normalize()も参照してください

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

cookie と同じ識別子を持つクッキーがこのクッキー・ジャーに存在する場合、それは更新されます。この関数はinsertCookie()を使います。

cookie が更新された場合はtrue を返し、cookie の識別子と一致するクッキーがジャーに存在しない場合は false を返します。

QNetworkCookie::hasSameIdentifier()も参照してください

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

cookie のドメインとパスが有効な場合はtrue を、そうでない場合は false を返す。url パラメータは、クッキーで指定されたドメインが許可されているかどうかを判断するために使用されます。

© 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.