- class QHttpMultiPart#
类
QHttpMultiPart
类似于要发送到HTTP的MIME多部分消息。 更多…概要#
方法#
def
__init__()
def
append()
def
boundary()
def
setBoundary()
def
setContentType()
注意
本文档可能包含自动从C++转换为Python的代码片段。我们始终欢迎对片段翻译的贡献。如果您发现翻译中存在问题,也可以通过在https:/bugreports.qt.io/projects/PYSIDE上创建工单的方式来通知我们
详细描述#
警告
本节包含自动从C++转换为Python的代码片段,可能包含错误。
QHttpMultiPart
具有类似于RFC 2046中描述的MIME多部分消息的形式,用于通过HTTP发送。一个多部分消息由任意数量的文体(请参见QHttpPart
)组成,这些文体由一个唯一的边界隔开。QHttpMultiPart
的边界是通过字符串“boundary_.oOo._”后跟随机字符构造的,提供足够的唯一性以确保它不会出现在文体内部。如果需要,边界仍然可以通过setBoundary()
来设置。以下是一个示例代码片段,它构建了一个包含文本部分后面跟着图像部分的多部分消息:
multiPart = QHttpMultiPart(QHttpMultiPart.FormDataType) textPart = QHttpPart() textPart.setHeader(QNetworkRequest.ContentDispositionHeader, QVariant("form-data; name=\"text\"")) textPart.setBody("my text") imagePart = QHttpPart() imagePart.setHeader(QNetworkRequest.ContentTypeHeader, QVariant("image/jpeg")) imagePart.setHeader(QNetworkRequest.ContentDispositionHeader, QVariant("form-data; name=\"image\"")) file = QFile("image.jpg") file.open(QIODevice.ReadOnly) imagePart.setBodyDevice(file) file.setParent(multiPart) # we cannot delete the file now, so delete it with the multiPart multiPart.append(textPart) multiPart.append(imagePart) url = QUrl("http://my.server.tld") request = QNetworkRequest(url) manager = QNetworkAccessManager() reply = manager.post(request, multiPart) multiPart.setParent(reply) # delete the multiPart with the reply # here connect signals etc.
- class ContentType#
已知的内容类型列表,如RFC 2046和其他文档中定义的多部分子类型。
常量
描述
QHttpMultiPart.MixedType
对应于“multipart/mixed”子类型,表示文体之间相互独立,如RFC 2046中所述。
QHttpMultiPart.RelatedType
对应于“multipart/related”子类型,表示文体之间相互关联,如RFC 2387中所述。
QHttpMultiPart.FormDataType
对应于“multipart/form-data”子类型,表示文体包含表单元素,如RFC 2388中所述。
QHttpMultiPart.AlternativeType
对应于“multipart/alternative”子类型,表示文体是相同信息的不同表示形式,如RFC 2046中所述。
另请参阅
- __init__(contentType[, parent=None])#
- 参数:
contentType –
ContentType
parent –
QObject
构造一个具有内容类型
contentType
的QHttpMultiPart
,并将父对象设置为父对象。另请参阅
- __init__([parent=None])
- 参数:
parent –
QObject
构造一个具有内容类型
MixedType
的QHttpMultiPart
,并将父对象设置为父对象。另请参阅
- append(httpPart)
- 参数:
httpPart –
QHttpPart
将
httpPart
追加到此多部分中。- boundary()
- 返回类型::
返回边界。
另请参阅
- setBoundary(boundary)
- 参数:
boundary –
QByteArray
将边界设置为
boundary
。通常,您不需要自己生成边界;在构造时,边界会初始化为字符串“boundary_.oOo._”后跟随机字符,并提供足够的不确定性,以确保它不会出现在各部分内部。
另请参阅
- setContentType(contentType)
- 参数:
contentType –
ContentType
将内容类型设置为
contentType
。在通过post()
通过 HTTP 发送多部分消息时,将使用内容类型在 HTTP 头部部分。如果您想使用不在ContentType
中的多部分子类型,您可以手动将“Content-Type”头字段添加到QNetworkRequest
中,然后使用此请求和多部分消息一起发送。另请参阅