PySide6.QtNetwork.QNetworkRequestFactory

class QNetworkRequestFactory

用于分组共享常见网络请求属性的远程服务器端点的便利类。更多

在版本6.7中添加。

概要

方法

注意

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

详细描述

警告

本节包含从C++自动翻译到Python的代码片段,可能包含错误。

REST 服务器通常有一些需要相同标头和其他数据的端点。使用 QNetworkRequestFactory 将这些端点分组,可以更方便地向这些端点发出请求;在创建新请求时,只需提供通常变化的部分,例如 路径查询 参数。

QNetworkRequestFactory 的基本使用步骤如下:

  • 实例化

  • 设置所有请求共有的数据

  • 发出请求

使用示例:

# Instantiate a factory somewhere suitable in the application
QNetworkRequestFactory api{{"https://example.com/v1"}}
# Set bearer token
api.setBearerToken("my_token")
# Issue requests (reply handling omitted for brevity)
manager.get(api.createRequest("models")) # https://example.com/v1/models
# The conventional leading '/' for the path can be used as well
manager.get(api.createRequest("/models")) # https://example.com/v1/models
__init__()

创建一个新的QNetworkRequestFactory对象。使用setBaseUrl()为请求设置一个有效的基础URL。

另请参阅

QNetworkRequestFactory(const QUrl &baseUrl) setBaseUrl()

__init__(other)
Parameters:

其他QNetworkRequestFactory

创建 other 的副本。

__init__(baseUrl)
Parameters:

baseUrlQUrl

警告

本节包含从C++自动翻译到Python的代码片段,可能包含错误。

创建一个新的QNetworkRequestFactory对象,将基础URL初始化为baseUrl。基础URL用于填充后续的网络请求。

如果URL包含一个路径组件,它将被提取并用作后续网络请求中的基础路径。这意味着在请求单个请求时提供的任何路径都将附加到此基础路径上,如下所示:

# Here the API version v2 is used as the base path:
QNetworkRequestFactory api{{"https://example.com/v2"}}
# ...
manager.get(api.createRequest("models")) # https://example.com/v2/models
# Equivalent with a leading '/'
manager.get(api.createRequest("/models")) # https://example.com/v2/models
attribute(attribute)
Parameters:

属性Attribute

Return type:

对象

返回与attribute关联的值。如果该属性尚未设置,则返回一个默认构造的QVariant。

另请参阅

Attribute, const QVariant &) setAttribute() clearAttributes() Attribute

attribute(attribute, defaultValue)
Parameters:
  • 属性Attribute

  • defaultValue – 对象

Return type:

对象

返回与attribute关联的值。如果该属性尚未设置,则返回defaultValue

baseUrl()
Return type:

QUrl

返回用于各个请求的基础URL。

基础URL可能包含路径组件。此路径用作生成单个请求时提供的路径的“前缀”。

另请参阅

setBaseUrl()

bearerToken()
Return type:

QByteArray

返回已设置的承载令牌。

如果存在承载令牌,则用于设置请求的Authorization: Bearer my_token头部。这是一种常见的授权约定,并作为额外的便利提供。

获取承载令牌的方法各不相同。标准方法包括OAuth2和服务提供商的网站/仪表板。预计承载令牌会随时间变化。例如,当使用刷新令牌更新时,始终重新设置新令牌可确保后续请求具有最新且有效的令牌。

持有者令牌的存在不会影响commonHeaders()列表。如果commonHeaders()也列出了Authorization头,它将被覆盖。

clearAttribute(attribute)
Parameters:

属性Attribute

清除attribute设置到此工厂。

clearAttributes()

清除为此工厂设置的任何属性。

clearBearerToken()

清除承载令牌。

另请参阅

bearerToken()

clearCommonHeaders()

清除当前头部信息。

clearPassword()

清除为此工厂设置的密码。

clearQueryParameters()

清除查询参数。

另请参阅

queryParameters()

clearUserName()

清除设置为此工厂的用户名。

commonHeaders()
Return type:

QHttpHeaders

返回当前设置的头部信息。

createRequest()
Return type:

QNetworkRequest

返回一个QNetworkRequest

返回的请求填充了此工厂已配置的数据。

另请参阅

createRequest(const QUrlQuery&) createRequest(const QString&, const QUrlQuery&)

createRequest(path)
Parameters:

路径 – 字符串

Return type:

QNetworkRequest

返回一个QNetworkRequest

返回的请求URL是通过将提供的path附加到baseUrl(它本身可能有一个路径组件)来形成的。

另请参阅

createRequest(const QString &, const QUrlQuery &) createRequest() baseUrl()

createRequest(query)
Parameters:

查询QUrlQuery

Return type:

QNetworkRequest

返回一个QNetworkRequest

返回的请求URL是通过将提供的query附加到baseUrl上形成的。

另请参阅

createRequest(const QString &, const QUrlQuery &) createRequest() baseUrl()

createRequest(path, query)
Parameters:
Return type:

QNetworkRequest

返回一个QNetworkRequest

返回的请求URL是通过将提供的pathquery附加到baseUrl(可能包含路径组件)而形成的。

如果提供的 path 包含查询项,它们将与 query 中的项合并。

另请参阅

createRequest(const QUrlQuery&) createRequest() baseUrl()

password()
Return type:

字符串

返回设置到此工厂的密码。

priority()
Return type:

优先级

返回由此工厂创建的任何未来请求所分配的优先级。

另请参阅

setPriority() priority()

queryParameters()
Return type:

QUrlQuery

返回添加到各个请求查询参数中的查询参数。这些查询参数会被添加到通过各个createRequest()调用提供的任何潜在查询参数中。

使用重复查询参数的用例取决于服务器,但典型的例子包括语言设置 ?lang=en,格式规范 ?format=json,API 版本规范 ?version=1.0 和 API 密钥认证。

setAttribute(attribute, value)
Parameters:

将与attribute关联的值设置为value。如果属性已经设置,则替换之前的值。这些属性将设置为此工厂创建的任何未来请求。

setBaseUrl(url)
Parameters:

urlQUrl

设置用于单个请求的基础URL为url

另请参阅

baseUrl()

setBearerToken(token)
Parameters:

tokenQByteArray

将承载令牌设置为token

setCommonHeaders(headers)
Parameters:

headersQHttpHeaders

设置headers,这些headers对所有请求都是通用的。

这些标头被添加到单个请求的标头中。这是一种方便的设置机制,用于设置跨请求重复的标头。

setPassword(password)
Parameters:

password – str

将此工厂的密码设置为 password

密码在调用createRequest()时设置在请求URL中。当服务器指示需要身份验证时,QRestAccessManager / QNetworkAccessManager将尝试使用这些凭据。

setPriority(priority)
Parameters:

优先级Priority

设置此工厂创建的任何未来请求的优先级为priority

默认优先级是 NormalPriority

另请参阅

priority() setPriority()

setQueryParameters(query)
Parameters:

查询QUrlQuery

设置query参数,这些参数会被添加到各个请求的查询参数中。

setSslConfiguration(configuration)
Parameters:

配置QSslConfiguration

将SSL配置设置为configuration

另请参阅

sslConfiguration()

setUserName(userName)
Parameters:

userName – str

将此工厂的用户名设置为 userName

用户名在调用createRequest()时设置在请求URL中。当服务器指示需要身份验证时,QRestAccessManager / QNetworkAccessManager将尝试使用这些凭据。

sslConfiguration()
Return type:

QSslConfiguration

返回设置到此工厂的SSL配置。SSL配置会设置到每个单独的请求中。

另请参阅

setSslConfiguration()

swap(other)
Parameters:

其他QNetworkRequestFactory

将此工厂与 other 交换。此操作非常快速且永远不会失败。

userName()
Return type:

字符串

返回设置为此工厂的用户名。