PySide6.QtNetwork.QRestAccessManager¶
- class QRestAccessManager¶
QRestAccessManager
是QNetworkAccessManager
的一个便捷封装。更多…在版本6.7中添加。
概要¶
方法¶
def
__init__()
def
deleteResource()
def
get()
def
head()
def
patch()
def
post()
def
put()
注意
本文档可能包含从C++自动翻译到Python的代码片段。我们始终欢迎对代码片段翻译的贡献。如果您发现翻译问题,您也可以通过在我们的https:/bugreports.qt.io/projects/PYSIDE上创建工单来告知我们。
详细描述¶
警告
本节包含从C++自动翻译到Python的代码片段,可能包含错误。
QRestAccessManager
是QNetworkAccessManager
上的一个便捷封装。它补充了对于典型 RESTful 客户端应用程序有用的数据类型和 HTTP 方法。通常的Qt网络功能可以通过直接配置封装的
QNetworkAccessManager
来访问。QRestAccessManager
不会接管封装的QNetworkAccessManager
的所有权。QRestAccessManager
和相关的QRestReply
类只能在它们所在的线程中使用。有关更多信息,请参阅 QObject 线程亲和性。发出网络请求和处理回复¶
网络请求通过调用与所需HTTP方法对应的函数来发起,例如
get()
和post()
。使用信号和槽¶
该函数返回一个
QNetworkReply
* 对象,其信号可用于以传统的Qt信号和槽方式跟踪请求的完成情况。以下是如何发送GET请求并处理响应的示例:
reply = manager.get(request) reply.finished.connect(this, [reply]() { # The reply may be wrapped in the finish handler: restReply = QRestReply(reply) if restReply.isSuccess(): # ... })
使用回调和上下文对象¶
这些函数还接受一个QObject(子类)类型的上下文对象和一个回调函数作为参数。回调函数接受一个
QRestReply
&作为参数。回调可以是任何可调用的对象,包括指向成员函数的指针。当回复处理完成时(包括由于错误导致处理完成的情况),这些回调函数会被调用。
上下文对象可以是
nullptr
,尽管通常不推荐这样做。使用有效的上下文对象可以确保如果在请求处理期间上下文对象被销毁,回调将不会被调用。访问已销毁上下文的游离回调是应用程序行为异常的来源。以下是如何发送GET请求并检查响应的示例:
# With lambda manager.get(request, self, [self](QRestReply reply) { if reply.isSuccess(): # ... }) # With member function manager->get(request, self.handleFinished)
许多函数接收数据以发送到服务器。数据作为请求后的第二个参数提供。
以下是如何发送POST请求并检查响应的示例:
myJson = QJsonDocument() # ... manager.post(request, myJson, self, [self](QRestReply reply) { if not reply.isSuccess(): # ... if std.optional json = reply.readJson(): # use *json })
提供的
QRestReply
& 仅在回调执行期间有效。如果您需要更长时间使用它,您可以将其移动到另一个QRestReply
,或者构造一个新的并使用QNetworkReply
进行初始化(参见networkReply()
)。支持的数据类型¶
下表总结了方法和支持的数据类型。
X
表示支持。数据类型
get()
post()
put()
head()
patch()
deleteResource()
sendCustomRequest()
无数据
X
X
X
QByteArray
X
X
X
X
X
QJsonDocument *)
X
X
X
X
QVariantMap **)
X
X
X
X
X
X
QIODevice
X
X
X
X
X
*) QJsonDocument 以 QJsonDocument::Compact 格式发送,如果未设置
Content-Type
头,则将其设置为application/json
**) QVariantMap 被转换并视为 QJsonObject
- __init__(manager[, parent=None])¶
- Parameters:
manager –
QNetworkAccessManager
parent –
QObject
构造一个
QRestAccessManager
对象,并将parent
设置为父对象,manager
设置为用于通信的底层QNetworkAccessManager
。- deleteResource(request)¶
- Parameters:
请求 –
QNetworkRequest
- Return type:
- deleteResource(request, context, slot)
- Parameters:
请求 –
QNetworkRequest
context –
QObject
slot –
PyCallable
- Return type:
- get(request)¶
- Parameters:
请求 –
QNetworkRequest
- Return type:
- get(request, data)
- Parameters:
请求 –
QNetworkRequest
data –
QIODevice
- Return type:
- get(request, data)
- Parameters:
请求 –
QNetworkRequest
data –
QByteArray
- Return type:
- get(request, data)
- Parameters:
请求 –
QNetworkRequest
data –
QJsonDocument
- Return type:
- get(request, context, slot)
- Parameters:
请求 –
QNetworkRequest
context –
QObject
slot –
PyCallable
- Return type:
- get(request, data, context, slot)
- Parameters:
请求 –
QNetworkRequest
data –
QByteArray
context –
QObject
slot –
PyCallable
- Return type:
- get(request, data, context, slot)
- Parameters:
请求 –
QNetworkRequest
data –
QIODevice
context –
QObject
slot –
PyCallable
- Return type:
- get(request, data, context, slot)
- Parameters:
请求 –
QNetworkRequest
data –
QJsonDocument
context –
QObject
slot –
PyCallable
- Return type:
- head(request)¶
- Parameters:
请求 –
QNetworkRequest
- Return type:
- head(request, context, slot)
- Parameters:
请求 –
QNetworkRequest
context –
QObject
slot –
PyCallable
- Return type:
- networkAccessManager()¶
- Return type:
返回底层的
QNetworkAccessManager
实例。- patch(request, data)¶
- Parameters:
请求 –
QNetworkRequest
data –
QIODevice
- Return type:
- patch(request, data)
- Parameters:
请求 –
QNetworkRequest
data –
QByteArray
- Return type:
- patch(request, data)
- Parameters:
请求 –
QNetworkRequest
data –
QJsonDocument
- Return type:
- patch(request, data)
- Parameters:
请求 –
QNetworkRequest
data – 字典,键类型为 .QString,值类型为 QVariant。
- Return type:
- patch(request, data, context, slot)
- Parameters:
请求 –
QNetworkRequest
data –
QByteArray
context –
QObject
slot –
PyCallable
- Return type:
- patch(request, data, context, slot)
- Parameters:
请求 –
QNetworkRequest
data –
QIODevice
context –
QObject
slot –
PyCallable
- Return type:
- patch(request, data, context, slot)
- Parameters:
请求 –
QNetworkRequest
data –
QJsonDocument
context –
QObject
slot –
PyCallable
- Return type:
- patch(request, data, context, slot)
- Parameters:
请求 –
QNetworkRequest
data – 字典,键类型为 .QString,值类型为 QVariant。
context –
QObject
slot –
PyCallable
- Return type:
- post(request, data)¶
- Parameters:
请求 –
QNetworkRequest
data –
QHttpMultiPart
- Return type:
- post(request, data)
- Parameters:
请求 –
QNetworkRequest
data –
QIODevice
- Return type:
- post(request, data)
- Parameters:
请求 –
QNetworkRequest
data –
QByteArray
- Return type:
- post(request, data)
- Parameters:
请求 –
QNetworkRequest
data –
QJsonDocument
- Return type:
- post(request, data)
- Parameters:
请求 –
QNetworkRequest
data – 字典,键类型为 .QString,值类型为 QVariant。
- Return type:
- post(request, data, context, slot)
- Parameters:
请求 –
QNetworkRequest
data –
QByteArray
context –
QObject
slot –
PyCallable
- Return type:
- post(request, data, context, slot)
- Parameters:
请求 –
QNetworkRequest
data –
QHttpMultiPart
context –
QObject
slot –
PyCallable
- Return type:
- post(request, data, context, slot)
- Parameters:
请求 –
QNetworkRequest
data –
QIODevice
context –
QObject
slot –
PyCallable
- Return type:
- post(request, data, context, slot)
- Parameters:
请求 –
QNetworkRequest
data –
QJsonDocument
context –
QObject
slot –
PyCallable
- Return type:
- post(request, data, context, slot)
- Parameters:
请求 –
QNetworkRequest
data – 字典,键类型为 .QString,值类型为 QVariant。
context –
QObject
slot –
PyCallable
- Return type:
- put(request, data)¶
- Parameters:
请求 –
QNetworkRequest
data –
QHttpMultiPart
- Return type:
- put(request, data)
- Parameters:
请求 –
QNetworkRequest
data –
QIODevice
- Return type:
- put(request, data)
- Parameters:
请求 –
QNetworkRequest
data –
QByteArray
- Return type:
- put(request, data)
- Parameters:
请求 –
QNetworkRequest
data –
QJsonDocument
- Return type:
- put(request, data)
- Parameters:
请求 –
QNetworkRequest
data – 字典,键类型为 .QString,值类型为 QVariant。
- Return type:
- put(request, data, context, slot)
- Parameters:
请求 –
QNetworkRequest
data –
QByteArray
context –
QObject
slot –
PyCallable
- Return type:
- put(request, data, context, slot)
- Parameters:
请求 –
QNetworkRequest
data –
QHttpMultiPart
context –
QObject
slot –
PyCallable
- Return type:
- put(request, data, context, slot)
- Parameters:
请求 –
QNetworkRequest
data –
QIODevice
context –
QObject
slot –
PyCallable
- Return type:
- put(request, data, context, slot)
- Parameters:
请求 –
QNetworkRequest
data –
QJsonDocument
context –
QObject
slot –
PyCallable
- Return type:
- put(request, data, context, slot)
- Parameters:
请求 –
QNetworkRequest
data – 字典,键类型为 .QString,值类型为 QVariant。
context –
QObject
slot –
PyCallable
- Return type:
- sendCustomRequest(request, method, data)¶
- Parameters:
请求 –
QNetworkRequest
method –
QByteArray
data –
QHttpMultiPart
- Return type:
- sendCustomRequest(request, method, data)
- Parameters:
请求 –
QNetworkRequest
method –
QByteArray
data –
QIODevice
- Return type:
- sendCustomRequest(request, method, data)
- Parameters:
请求 –
QNetworkRequest
method –
QByteArray
data –
QByteArray
- Return type:
- sendCustomRequest(request, method, data, context, slot)
- Parameters:
请求 –
QNetworkRequest
method –
QByteArray
data –
QByteArray
context –
QObject
slot –
PyCallable
- Return type:
- sendCustomRequest(request, method, data, context, slot)
- Parameters:
请求 –
QNetworkRequest
method –
QByteArray
data –
QHttpMultiPart
context –
QObject
slot –
PyCallable
- Return type:
- sendCustomRequest(request, method, data, context, slot)
- Parameters:
请求 –
QNetworkRequest
方法 –
QByteArray
data –
QIODevice
context –
QObject
slot –
PyCallable
- Return type: