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__(other)#
参数:

otherQNetworkRequestFactory

创建other的副本。

__init__(baseUrl)
参数:

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
__init__()

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

查看也

QNetworkRequestFactory(const QUrl &baseUrl) setBaseUrl()

baseUrl()#
返回类型:

QUrl

返回用于单个请求的基本URL。

基本URL可能包含一个路径组件。该路径用作在生成单个请求提供的路径的“前缀”。

查看也

setBaseUrl()

bearerToken()#
返回类型:

QByteArray

返回已设置的承载令牌。

如果存在,承载令牌会被用来设置请求的Authorization: Bearer my_token头部。这是一种常见的认证约定,并提供额外便利。

获取承载令牌的方法多种多样。常见的方法包括OAuth2和供应商的网站/仪表板。承载令牌通常会随时间改变,例如在更新刷新令牌时。通过始终重置新令牌,可以确保后续请求始终使用最新、有效的令牌。

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

clearBearerToken()#

清除承载令牌。

查看也

bearerToken()

clearCommonHeaders()#

清除当前头部。

clearPassword()#

清除设置给该工厂的密码。

clearQueryParameters()#

清除查询参数。

查看也

queryParameters()

clearUserName()#

清除设置给该工厂的用户名。

commonHeaders()#
返回类型:

QHttpHeaders

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

createRequest(path, query)#
参数:
返回类型:

QNetworkRequest

返回一个 QNetworkRequest 实例。

返回的请求的URL通过将提供的 pathquery 添加到 baseUrl (它本身可能包含路径组件) 来构成。

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

查看也

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

createRequest(query)
参数:

queryQUrlQuery

返回类型:

QNetworkRequest

返回一个 QNetworkRequest 实例。

返回的请求的URL通过将提供的 query 添加到 baseUrl 来构成。

查看也

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

createRequest(path)
参数:

path – str

返回类型:

QNetworkRequest

返回一个 QNetworkRequest 实例。

返回的请求的URL通过将提供的 path 添加到 baseUrl (它本身可能包含路径组件) 来构成。

查看也

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

createRequest()
返回类型:

QNetworkRequest

返回一个 QNetworkRequest 实例。

返回的请求使用此工厂配置的数据填充。

查看也

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

password()#
返回类型:

字符串

返回分配给该工厂的密码。

queryParameters()#
返回类型:

QUrlQuery

返回添加到各个请求查询参数中的查询参数。查询参数将添加到使用偶数个 createRequest() 调用的潜在查询参数中。

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

setBaseUrl(url)#
参数:

urlQUrl

将用于各个请求的基本URL设置为 url

查看也

baseUrl()

setBearerToken(token)#
参数:

tokenQByteArray

将承载令牌设置为 token

setCommonHeaders(headers)#
参数:

headersQHttpHeaders

设置所有请求共用的 headers

这些头部将被添加到单个请求的头部中。这是一个便利的机制,用于设置在请求之间重复的头部。

setPassword(password)#
参数:

password – str

将此工厂的密码设置为 password

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

setQueryParameters(query)#
参数:

queryQUrlQuery

设置要添加到单个请求查询参数中的 query 参数。

setSslConfiguration(configuration)#
参数:

configurationQSslConfiguration

将 SSL 配置设置为 configuration

查看也

sslConfiguration()

setUserName(userName)#
参数:

userName – 字符串

设置此工厂的用户名为 userName

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

sslConfiguration()#
返回类型:

QSslConfiguration

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

swap(other)#
参数:

otherQNetworkRequestFactory

other 交换此工厂。此操作非常快且从不失败。

userName()#
返回类型:

字符串

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