class QNetworkCookieJar#

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

Inheritance diagram of PySide6.QtNetwork.QNetworkCookieJar

摘要#

方法#

虚方法#

注意

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

详细描述#

Cookie 是一种小信息块,无状态协议如 HTTP 使用它来在请求之间维持一些持久信息。

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

Cookie Jar 是保存之前请求中所有 Cookie 的对象。网络浏览器将它们的 Cookie Jar 存储到磁盘上,以保存应用程序调用的永久性 Cookie。

QNetworkCookieJar 不实现持久存储:它仅将 Cookie 保存在内存中。一旦删除了 QNetworkCookieJar 对象,它所持有的所有 Cookie 将一并被丢弃。如果要保存 Cookie,应从此类派生并实现将保存到磁盘的自定义存储格式。

此类只实现了cookie规范推荐的基本安全功能,未实现任何cookie接受策略(接受任何请求设置的cookie)。为了覆盖这些规则,您应该重写cookiesForUrl()setCookiesFromUrl()这两个虚拟函数。这两个函数在检测到新cookie或需要cookie时,将由QNetworkReplyQNetworkAccessManager调用。

__init__([parent=None])#
参数:

parentQObject

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

cookie存储器初始化为空。

allCookies()#
返回类型:

.cookie列表QNetworkCookie

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

cookiesForUrl(url)#
参数:

urlQUrl

返回类型:

.cookie列表QNetworkCookie

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

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

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

deleteCookie(cookie)#
参数:

cookieQNetworkCookie

返回类型:

bool

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

如果删除了 Cookie,则返回 true,否则返回 false

insertCookie(cookie)#
参数:

cookieQNetworkCookie

返回类型:

bool

cookie 添加到这个 cookie jar。

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

如果 cookie jar 中已存在具有相同标识符的 Cookie,则它会覆盖该 Cookie。

setAllCookies(cookieList)#
参数:

cookieList – .list of QNetworkCookie

将此 cookie jar 保留的 Cookie 的内部列表设置为 cookieList。此函数适用于派生类实现从永久存储加载 Cookie 或通过重写 setCookiesFromUrl() 的 cookie 接受策略。

setCookiesFromUrl(cookieList, url)#
参数:
  • cookieList – .list of QNetworkCookie

  • urlQUrl

返回类型:

bool

将列表中的cookies cookieList 添加到这个cookie jar中。在插入之前,cookies将被标准化。

如果为url设置了至少一个cookie,则返回true,否则返回false。

如果cookie jar中已经存在同名cookie,则将被列表中的cookie覆盖。

默认的QNetworkCookieJar类仅实现了非常基本的安全策略(确保cookie的域名和路径与响应匹配)。为了通过自己的算法增强安全策略,请覆盖setCookiesFromUrl()

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

updateCookie(cookie)#
参数:

cookieQNetworkCookie

返回类型:

bool

如果此cookie jar中存在与指定的cookie具有相同标识符的cookie,则将更新该cookie。此函数使用insertCookie()

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

validateCookie(cookie, url)#
参数:
返回类型:

bool

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