PySide6.QtNetwork.QNetworkCookie

class QNetworkCookie

QNetworkCookie 类持有一个网络cookie。更多

概要

方法

静态函数

注意

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

详细描述

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

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

QNetworkCookie 保存了从网络接收到的一个这样的cookie。一个cookie有一个名称和一个值,但这些对应用程序来说是不透明的(即存储在其中的信息对应用程序没有意义)。一个cookie有一个相关的路径名称和域,这些指示了何时应该再次将cookie发送到服务器。

一个cookie也可以有一个过期日期,表示其有效性。如果没有过期日期,该cookie被视为“会话cookie”,应在应用程序退出时(或当其会话概念结束时)丢弃。

QNetworkCookie 提供了一种使用 parseCookies() 函数从 HTTP 头格式解析 cookie 的方法。然而,当在 QNetworkReply 中接收到时,cookie 已经被解析。

该类实现了由Netscape提出的初始cookie规范中描述的cookies,该规范与RFC 2109规范有些相似,并增加了“HttpOnly”扩展。不支持较新的RFC 2965规范(使用Set-Cookie2头)。

class RawForm

此枚举与toRawForm()函数一起使用,用于声明应返回哪种形式的cookie。

常量

描述

QNetworkCookie.NameAndValueOnly

使得 toRawForm() 仅返回 cookie 的“NAME=VALUE”部分,适合在客户端请求的“Cookie:”头中发送回服务器。多个 cookie 在“Cookie:”头字段中用分号分隔。

QNetworkCookie.Full

使 toRawForm() 返回完整的 cookie 内容,适合在服务器的“Set-Cookie:”头中发送给客户端。

请注意,只有完整形式的cookie才能被解析回其原始内容。

class SameSite

常量

描述

QNetworkCookie.SameSite.Default

SameSite 未设置。浏览器可以将其解释为 None 或 Lax。

QNetworkCookie.SameSite.None

Cookies可以在所有上下文中发送。这曾经是默认设置,但最近的浏览器将Lax设为默认设置,现在要求cookie必须是安全的,并且设置SameSite=None。

QNetworkCookie.SameSite.Lax

Cookies 会在第一方请求和由第三方网站发起的 GET 请求中发送。这是现代浏览器(自2020年中以来)的默认设置。

QNetworkCookie.SameSite.Strict

Cookies 将仅在第一方上下文中发送。

在版本6.1中添加。

__init__(other)
Parameters:

其他QNetworkCookie

通过复制other的内容创建一个新的QNetworkCookie对象。

__init__([name=QByteArray()[, value=QByteArray()]])
Parameters:

创建一个新的QNetworkCookie对象,将cookie名称初始化为name,并将其值初始化为value

只有在具有名称的情况下,cookie 才是有效的。然而,该值对应用程序是不透明的,并且为空可能对远程服务器有重要意义。

domain()
Return type:

字符串

返回与此cookie关联的域名。这对应于cookie字符串中的“domain”字段。

请注意,这里的域名可能以点开头,这不是一个有效的主机名。然而,这意味着此cookie匹配所有以该域名结尾的主机名。

另请参阅

setDomain()

expirationDate()
Return type:

QDateTime

返回此cookie的过期日期。如果此cookie是会话cookie,则返回的QDateTime将无效。如果日期在过去,此cookie已经过期,不应再发送回远程服务器。

过期日期对应于cookie字符串中“expires”条目的参数。

hasSameIdentifier(other)
Parameters:

其他QNetworkCookie

Return type:

布尔

如果此cookie具有与other相同的标识符元组,则返回true。标识符元组由名称、域和路径组成。

另请参阅

operator==()

isHttpOnly()
Return type:

布尔

如果此cookie启用了“HttpOnly”标志,则返回true

“HttpOnly”类型的cookie仅由网络请求和响应设置和检索;即HTTP协议。它无法从浏览器上运行的脚本访问。

另请参阅

isSecure()

isSecure()
Return type:

布尔

如果在cookie字符串中指定了“secure”选项,则返回true,否则返回false。

安全cookie可能包含私人信息,不应通过未加密的连接重新发送。

另请参阅

setSecure()

isSessionCookie()
Return type:

布尔

如果此cookie是会话cookie,则返回true。会话cookie是指没有过期日期的cookie,这意味着当应用程序的会话概念结束时(通常是应用程序退出时),它应该被丢弃。

name()
Return type:

QByteArray

返回此cookie的名称。cookie的唯一必填字段是其名称,没有名称的cookie被视为无效。

另请参阅

setName() value()

normalize(url)
Parameters:

urlQUrl

此函数会规范化cookie的路径和域,如果它们之前为空。url参数用于确定正确的域和路径。

__ne__(other)
Parameters:

其他QNetworkCookie

Return type:

布尔

如果此cookie不等于other,则返回true

另请参阅

operator==()

__eq__(other)
Parameters:

其他QNetworkCookie

Return type:

布尔

如果此cookie等于other,则返回true。此函数仅在cookie的所有字段都相同时才返回true

然而,在某些情况下,两个同名的cookie可能被认为是相等的。

另请参阅

operator!=() hasSameIdentifier()

static parseCookies(cookieString)
Parameters:

cookieStringQByteArrayView

Return type:

QNetworkCookie的列表

解析从服务器响应中的“Set-Cookie:”头接收到的cookie字符串cookieString。如果解析出错,此函数返回一个空列表。

由于HTTP头可以同时设置多个cookie,此函数返回一个QList< QNetworkCookie >,每个解析出的cookie对应一个。

注意

在Qt 6.7之前的版本中,此函数仅接受QByteArray。

另请参阅

toRawForm()

path()
Return type:

字符串

返回与此cookie关联的路径。这对应于cookie字符串中的“path”字段。

另请参阅

setPath()

sameSitePolicy()
Return type:

SameSite

如果在cookie字符串中指定了“SameSite”选项,则返回该选项,如果不存在,则返回SameSite::Default

另请参阅

setSameSitePolicy()

setDomain(domain)
Parameters:

domain – str

设置与此cookie关联的域为domain

另请参阅

domain()

setExpirationDate(date)
Parameters:

日期QDateTime

将此cookie的过期日期设置为date。为此cookie设置无效的过期日期将意味着它是一个会话cookie。

setHttpOnly(enable)
Parameters:

enable – 布尔值

将此cookie的“HttpOnly”标志设置为enable

另请参阅

isHttpOnly()

setName(cookieName)
Parameters:

cookieNameQByteArray

将此cookie的名称设置为cookieName。请注意,将cookie名称设置为空的QByteArray将使此cookie无效。

另请参阅

name() value()

setPath(path)
Parameters:

路径 – 字符串

设置与此cookie关联的路径为path

另请参阅

path()

setSameSitePolicy(sameSite)
Parameters:

sameSiteSameSite

将此cookie的“SameSite”选项设置为sameSite

另请参阅

sameSitePolicy()

setSecure(enable)
Parameters:

enable – 布尔值

将此cookie的安全标志设置为enable

安全cookie可能包含私人信息,不应通过未加密的连接重新发送。

另请参阅

isSecure()

setValue(value)
Parameters:

QByteArray

将此cookie的值设置为value

另请参阅

value() name()

swap(other)
Parameters:

其他QNetworkCookie

将此cookie与other交换。此函数非常快速且永远不会失败。

toRawForm([form=QNetworkCookie.RawForm.Full])
Parameters:

表单RawForm

Return type:

QByteArray

返回此QNetworkCookie的原始形式。此函数返回的QByteArray适用于HTTP头,无论是在服务器响应(Set-Cookie头)还是客户端请求(Cookie头)中。您可以使用form从两种格式中选择一种。

另请参阅

parseCookies()

value()
Return type:

QByteArray

返回此cookie的值,如cookie字符串中所指定的。请注意,即使cookie的值为空,它仍然有效。

Cookie 名称-值对对于应用程序来说是不透明的:也就是说,它们的值没有任何意义。

另请参阅

setValue() name()