PySide6.QtNetwork.QNetworkCookieJar¶
- class QNetworkCookieJar¶
QNetworkCookieJar类实现了一个简单的QNetworkCookie对象存储库。更多…概要¶
方法¶
def
__init__()def
allCookies()def
setAllCookies()
虚拟方法¶
def
cookiesForUrl()def
deleteCookie()def
insertCookie()def
updateCookie()def
validateCookie()
注意
本文档可能包含从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()虚函数。当QNetworkReply和QNetworkAccessManager检测到新cookie或需要cookie时,它们会调用这些函数。创建一个
QNetworkCookieJar对象,并将父对象设置为parent。Cookie jar 被初始化为空。
- allCookies()¶
- Return type:
返回存储在此cookie jar中的所有cookie。此函数适用于派生类将cookie保存到磁盘,以及实现cookie过期和其他策略。
返回在请求发送到
url时要添加的cookies。此函数由默认的createRequest()调用,该函数将此函数返回的cookies添加到正在发送的请求中。如果找到多个具有相同名称但路径不同的cookie,则路径较长的cookie会在路径较短的cookie之前返回。换句话说,此函数返回按路径长度递减排序的cookie。
默认的
QNetworkCookieJar类仅实现了非常基本的安全策略(它确保cookie的域和路径与回复的匹配)。要使用您自己的算法增强安全策略,请重写cookiesForUrl()。- deleteCookie(cookie)¶
- Parameters:
cookie –
QNetworkCookie- Return type:
布尔
从cookie jar中删除与
cookie具有相同标识符的cookie。如果删除了一个cookie,则返回
true,否则返回false。另请参阅
- insertCookie(cookie)¶
- Parameters:
cookie –
QNetworkCookie- 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 的列表
url –
QUrl
- 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:
cookie –
QNetworkCookie- Return type:
布尔
如果在这个cookie jar中存在与
cookie相同标识符的cookie,它将被更新。此函数使用insertCookie()。如果
cookie被更新,则返回true,如果 jar 中没有与cookie的标识符匹配的 cookie,则返回 false。另请参阅
- validateCookie(cookie, url)¶
- Parameters:
cookie –
QNetworkCookieurl –
QUrl
- Return type:
布尔
如果
cookie的域名和路径有效,则返回true,否则返回false。url参数用于确定cookie中指定的域名是否被允许。