class QNetworkCookie#

QNetworkCookie 存储一个网络cookie。 更多信息

概述#

方法#

静态函数#

注意

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

详细说明#

Cookie是一些小片段信息,无状态协议如HTTP使用它们在请求之间维护一些持久信息。

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

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

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

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

此类实施了由Netscape最初的Cookie规范所描述的Cookie,这与RFC 2109规范略相似,并增加了“HttpOnly”扩展。不支持较新的RFC 2965规范(该规范使用Set-Cookie2头)。

class RawForm#

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

常数

描述

QNetworkCookie.名称值仅

使 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

cookie 可以在任何上下文中发送。这曾经是默认设置,但最近浏览器将 Lax 设置为默认值,并现在要求cookie既安全又设置 SameSite=None。

QNetworkCookie.SameSite.Lax

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

QNetworkCookie.SameSite.Strict

cookie 只会在第一方上下文中发送。

新版本 6.1 中加入。

__init__(other)#
参数:

otherQNetworkCookie

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

__init__([name=QByteArray()[, value=QByteArray()]])
参数:

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

Cookie只有当它有一个名字时才有效。然而,其值对应用程序来说是透明的,对远程服务器来说可能是空的。

domain()#
返回类型::

str

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

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

另请参阅

setDomain()

expirationDate()#
返回类型::

QDateTime

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

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

hasSameIdentifier(other)#
参数:

otherQNetworkCookie

返回类型::

bool

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

另请参阅

operator==()

isHttpOnly()#
返回类型::

bool

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

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

另请参阅

isSecure()

isSecure()#
返回类型::

bool

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

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

另请参阅

setSecure()

isSessionCookie()#
返回类型::

bool

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

name()#
返回类型::

QByteArray

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

另请参阅

setName() value()

normalize(url)#
参数:

urlQUrl

此函数会规范化 cookie 的 path 和 domain,如果之前为空。使用 url 参数来确定正确的 domain 和 path。

__ne__(other)#
参数:

otherQNetworkCookie

返回类型::

bool

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

另请参阅

operator==()

__eq__(other)#
参数:

otherQNetworkCookie

返回类型::

bool

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

然而,在某些上下文中,两个具有相同名称的 cookie 可能被视为相等。

另请参阅

operator!=() hasSameIdentifier()

静态parseCookies(cookieString)#
参数:

cookieStringQByteArrayView

返回类型::

返回一个 QNetworkCookie 对象列表

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

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

注意

在 Qt 版本 6.7 之前,此函数只接受 QByteArray。

另请参阅

toRawForm()

path()#
返回类型::

str

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

另请参阅

setPath()

sameSitePolicy()#
返回类型::

SameSite

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

另请参阅

setSameSitePolicy()

setDomain(domain)#
参数:

domain - 字符串

将与此cookie关联的域名设置为domain

另请参阅

domain()

setExpirationDate(date)#
参数:

date - QDateTime

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

setHttpOnly(enable)#
参数:

enable - 布尔值

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

另请参阅

isHttpOnly()

setName(cookieName)#
参数:

cookieName - QByteArray

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

另请参阅

name() value()

setPath(path)#
参数:

path - 字符串

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

另请参阅

path()

setSameSitePolicy(sameSite)#
参数:

sameSite - SameSite

设置此 Cookie 的“ SameSite “选项为 sameSite

另请参阅

sameSitePolicy()

setSecure(enable)#
参数:

enable - 布尔值

设置此 Cookie 的安全标志为 enable

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

另请参阅

isSecure()

setValue(value)#
参数:

valueQByteArray

将此 Cookie 的值设置为 value

另请参阅

value() name()

swap(other)#
参数:

otherQNetworkCookie

other 交换此 Cookie。此函数非常快,且从不失败。

toRawForm([form=QNetworkCookie.RawForm.Full])#
参数:

formRawForm

返回类型::

QByteArray

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

另请参阅

parseCookies()

value()#
返回类型::

QByteArray

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

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

另请参阅

setValue() name()