PySide6.QtNetwork.QNetworkCookieJar

class QNetworkCookieJar

QNetworkCookieJar 类实现了一个简单的 QNetworkCookie 对象存储库。更多

PySide6.QtNetwork.QNetworkCookieJar 的继承图

概要

方法

虚拟方法

注意

本文档可能包含从C++自动翻译到Python的代码片段。我们始终欢迎对代码片段翻译的贡献。如果您发现翻译问题,您也可以通过在我们的https:/bugreports.qt.io/projects/PYSIDE上创建工单来告知我们。

详细描述

Cookies 是无状态协议(如 HTTP)用来在请求之间保持一些持久信息的小片段信息。

当远程服务器回复请求时,它会设置一个cookie,并期望在发送进一步请求时发送相同的cookie。

cookie jar 是保存之前请求中设置的所有 cookie 的对象。Web 浏览器将它们的 cookie jar 保存到磁盘上,以便在应用程序的多次调用之间保留永久性 cookie。

QNetworkCookieJar 不实现永久存储:它只在内存中保存 cookies。一旦 QNetworkCookieJar 对象被删除,它所持有的所有 cookies 也将被丢弃。如果你想保存 cookies,你应该从这个类派生并实现将 cookies 保存到磁盘到你自己的存储格式。

此类仅实现了cookie规范推荐的基本安全性,并未实现任何cookie接受策略(它接受任何请求设置的所有cookie)。为了覆盖这些规则,您应该重新实现cookiesForUrl()setCookiesFromUrl()虚函数。当QNetworkReplyQNetworkAccessManager检测到新cookie或需要cookie时,它们会调用这些函数。

__init__([parent=None])
Parameters:

父对象QObject

创建一个QNetworkCookieJar对象,并将父对象设置为parent

Cookie jar 被初始化为空。

allCookies()
Return type:

QNetworkCookie的列表

返回存储在此cookie jar中的所有cookie。此函数适用于派生类将cookie保存到磁盘,以及实现cookie过期和其他策略。

cookiesForUrl(url)
Parameters:

urlQUrl

Return type:

QNetworkCookie的列表

返回在请求发送到url时要添加的cookies。此函数由默认的createRequest()调用,该函数将此函数返回的cookies添加到正在发送的请求中。

如果找到多个具有相同名称但路径不同的cookie,则路径较长的cookie会在路径较短的cookie之前返回。换句话说,此函数返回按路径长度递减排序的cookie。

默认的QNetworkCookieJar类仅实现了非常基本的安全策略(它确保cookie的域和路径与回复的匹配)。要使用您自己的算法增强安全策略,请重写cookiesForUrl()。

deleteCookie(cookie)
Parameters:

cookieQNetworkCookie

Return type:

布尔

从cookie jar中删除与cookie具有相同标识符的cookie。

如果删除了一个cookie,则返回true,否则返回false。

另请参阅

hasSameIdentifier()

insertCookie(cookie)
Parameters:

cookieQNetworkCookie

Return type:

布尔

cookie添加到此cookie jar中。

如果添加了cookie,则返回true,否则返回false。

如果cookie jar中已经存在具有相同标识符的cookie,它将被覆盖。

setAllCookies(cookieList)
Parameters:

cookieList – QNetworkCookie 的列表

将此cookie jar持有的内部cookie列表设置为cookieList。此函数适用于派生类通过重新实现setCookiesFromUrl()来实现从永久存储加载cookie或它们自己的cookie接受策略。

setCookiesFromUrl(cookieList, url)
Parameters:
  • cookieList – QNetworkCookie 的列表

  • urlQUrl

Return type:

布尔

将列表 cookieList 中的 cookies 添加到此 cookie jar 中。在插入之前,cookies 会被规范化。

如果为url设置了一个或多个cookies,则返回true,否则返回false。

如果cookie jar中已经存在一个cookie,它将被cookieList中的那些覆盖。

默认的QNetworkCookieJar类仅实现了非常基本的安全策略(它确保cookie的域和路径与回复的匹配)。要使用您自己的算法增强安全策略,请重写setCookiesFromUrl()。

此外,QNetworkCookieJar 没有最大 cookie jar 大小。重新实现此函数以丢弃旧的 cookie,为新 cookie 腾出空间。

updateCookie(cookie)
Parameters:

cookieQNetworkCookie

Return type:

布尔

如果在这个cookie jar中存在与cookie相同标识符的cookie,它将被更新。此函数使用insertCookie()

如果 cookie 被更新,则返回 true,如果 jar 中没有与 cookie 的标识符匹配的 cookie,则返回 false。

另请参阅

hasSameIdentifier()

validateCookie(cookie, url)
Parameters:
Return type:

布尔

如果cookie的域名和路径有效,则返回true,否则返回false。url参数用于确定cookie中指定的域名是否被允许。