- 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 创建问题单的方式告诉我们
详细描述#
Cookie 是一种小信息块,无状态协议如 HTTP 使用它来在请求之间维持一些持久信息。
Cookie 由远程服务器在回复请求时设置,它期望当发送进一步请求时发送相同的 Cookie。
Cookie Jar 是保存之前请求中所有 Cookie 的对象。网络浏览器将它们的 Cookie Jar 存储到磁盘上,以保存应用程序调用的永久性 Cookie。
QNetworkCookieJar
不实现持久存储:它仅将 Cookie 保存在内存中。一旦删除了QNetworkCookieJar
对象,它所持有的所有 Cookie 将一并被丢弃。如果要保存 Cookie,应从此类派生并实现将保存到磁盘的自定义存储格式。此类只实现了cookie规范推荐的基本安全功能,未实现任何cookie接受策略(接受任何请求设置的cookie)。为了覆盖这些规则,您应该重写
cookiesForUrl()
和setCookiesFromUrl()
这两个虚拟函数。这两个函数在检测到新cookie或需要cookie时,将由QNetworkReply
和QNetworkAccessManager
调用。创建一个
QNetworkCookieJar
对象,并将父对象设置为parent
。cookie存储器初始化为空。
- allCookies()#
- 返回类型:
.cookie列表QNetworkCookie
返回存储在这cookie存储器中所有cookie。此函数适用于派生类将cookie保存到磁盘,以及实现cookie过期和其他策略。
- cookiesForUrl(url)#
- 参数:
url –
QUrl
- 返回类型:
.cookie列表QNetworkCookie
返回在发送到
url
的请求时要添加的 Cookie。此函数由默认的createRequest()
调用,该函数将此函数返回的 Cookie 添加到即将发送的请求中。如果找到多个具有相同名称但路径不同的 Cookie,则返回路径更长的 Cookie 而不是路径较短的 Cookie。换句话说,此函数按路径长度递减排序返回 Cookie。
默认的
QNetworkCookieJar
类仅实现了一个非常基本的策略(它确保 Cookie 的域和路径与回复匹配)。要使用自己的算法增强安全策略,重写 cookiesForUrl() 方法。- deleteCookie(cookie)#
- 参数:
cookie –
QNetworkCookie
- 返回类型:
bool
从 cookie jar 中删除与
cookie
有相同标识符的 Cookie。如果删除了 Cookie,则返回
true
,否则返回false
。- insertCookie(cookie)#
- 参数:
cookie –
QNetworkCookie
- 返回类型:
bool
将
cookie
添加到这个 cookie jar。如果添加了
cookie
,则返回true
,否则返回false
。如果 cookie jar 中已存在具有相同标识符的 Cookie,则它会覆盖该 Cookie。
- setAllCookies(cookieList)#
- 参数:
cookieList – .list of QNetworkCookie
将此 cookie jar 保留的 Cookie 的内部列表设置为
cookieList
。此函数适用于派生类实现从永久存储加载 Cookie 或通过重写setCookiesFromUrl()
的 cookie 接受策略。将列表中的cookies
cookieList
添加到这个cookie jar中。在插入之前,cookies将被标准化。如果为
url
设置了至少一个cookie,则返回true
,否则返回false。如果cookie jar中已经存在同名cookie,则将被列表中的cookie覆盖。
默认的
QNetworkCookieJar
类仅实现了非常基本的安全策略(确保cookie的域名和路径与响应匹配)。为了通过自己的算法增强安全策略,请覆盖setCookiesFromUrl()
。此外,
QNetworkCookieJar
没有最大cookie jar大小的限制。重新实现此函数以丢弃旧cookie为新cookie腾出空间。- updateCookie(cookie)#
- 参数:
cookie –
QNetworkCookie
- 返回类型:
bool
如果此cookie jar中存在与指定的cookie具有相同标识符的cookie,则将更新该cookie。此函数使用
insertCookie()
。如果cookie已更新,则返回
true
,如果jar中没有cookie与cookie的标识符匹配,则返回false。- validateCookie(cookie, url)#
- 参数:
cookie –
QNetworkCookie
url –
QUrl
- 返回类型:
bool
如果cookie的域名和路径有效,则返回
true
,否则返回false。使用url
参数确定在cookie中指定的域名是否允许。