PySide6.QtNetwork.QHttpMultiPart¶
- 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中所述。
另请参阅
构造一个内容类型为
MixedType
的QHttpMultiPart
,并将parent
设置为父对象。另请参阅
- __init__(contentType[, parent=None])
- Parameters:
contentType –
ContentType
parent –
QObject
构造一个
QHttpMultiPart
,内容类型为contentType
,并将父对象设置为parent。另请参阅
将
httpPart
附加到此多部分。- boundary()¶
- Return type:
返回边界。
另请参阅
- setBoundary(boundary)¶
- Parameters:
边界 –
QByteArray
将边界设置为
boundary
。通常,您不需要自己生成边界;在构造时,边界会以字符串“boundary_.oOo._”开头,后面跟着随机字符,这提供了足够的唯一性,以确保它不会出现在部分内容本身中。
另请参阅
- setContentType(contentType)¶
- Parameters:
contentType –
ContentType
将内容类型设置为
contentType
。当通过post()
发送多部分消息时,内容类型将用于HTTP头部部分。如果你想使用ContentType
中未包含的多部分子类型,你可以手动将“Content-Type”头字段添加到QNetworkRequest
中,然后将此请求与多部分消息一起用于发布。另请参阅