QHttpMultiPart#

The QHttpMultiPart class resembles a MIME multipart message to be sent over HTTP. More

Synopsis#

Functions#

Detailed Description#

The QHttpMultiPart resembles a MIME multipart message, as described in RFC 2046, which is to be sent over HTTP. A multipart message consists of an arbitrary number of body parts (see QHttpPart ), which are separated by a unique boundary. The boundary of the QHttpMultiPart is constructed with the string “boundary_.oOo._” followed by random characters, and provides enough uniqueness to make sure it does not occur inside the parts itself. If desired, the boundary can still be set via setBoundary() .

As an example, consider the following code snippet, which constructs a multipart message containing a text part followed by an image part:

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.

See also

QHttpPart post()

class PySide6.QtNetwork.QHttpMultiPart(contentType[, parent=None])#

PySide6.QtNetwork.QHttpMultiPart([parent=None])

Parameters

Constructs a QHttpMultiPart with content type contentType and sets parent as the parent object.

See also

ContentType

Constructs a QHttpMultiPart with content type MixedType and sets parent as the parent object.

See also

ContentType

PySide6.QtNetwork.QHttpMultiPart.ContentType#

List of known content types for a multipart subtype as described in RFC 2046 and others.

Constant

Description

QHttpMultiPart.MixedType

corresponds to the “multipart/mixed” subtype, meaning the body parts are independent of each other, as described in RFC 2046.

QHttpMultiPart.RelatedType

corresponds to the “multipart/related” subtype, meaning the body parts are related to each other, as described in RFC 2387.

QHttpMultiPart.FormDataType

corresponds to the “multipart/form-data” subtype, meaning the body parts contain form elements, as described in RFC 2388.

QHttpMultiPart.AlternativeType

corresponds to the “multipart/alternative” subtype, meaning the body parts are alternative representations of the same information, as described in RFC 2046.

See also

setContentType()

PySide6.QtNetwork.QHttpMultiPart.append(httpPart)#
Parameters

httpPartPySide6.QtNetwork.QHttpPart

Appends httpPart to this multipart.

PySide6.QtNetwork.QHttpMultiPart.boundary()#
Return type

PySide6.QtCore.QByteArray

returns the boundary.

See also

setBoundary()

PySide6.QtNetwork.QHttpMultiPart.setBoundary(boundary)#
Parameters

boundaryPySide6.QtCore.QByteArray

Sets the boundary to boundary.

Usually, you do not need to generate a boundary yourself; upon construction the boundary is initiated with the string “boundary_.oOo._” followed by random characters, and provides enough uniqueness to make sure it does not occur inside the parts itself.

See also

boundary()

PySide6.QtNetwork.QHttpMultiPart.setContentType(contentType)#
Parameters

contentTypeContentType

Sets the content type to contentType. The content type will be used in the HTTP header section when sending the multipart message via post() . In case you want to use a multipart subtype not contained in ContentType , you can add the “Content-Type” header field to the QNetworkRequest by hand, and then use this request together with the multipart message for posting.

See also

ContentType post()