PySide6.QtNetwork.QHttpMultiPart

class QHttpMultiPart

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

Inheritance diagram of PySide6.QtNetwork.QHttpMultiPart

Synopsis

Methods

Note

This documentation may contain snippets that were automatically translated from C++ to Python. We always welcome contributions to the snippet translation. If you see an issue with the translation, you can also let us know by creating a ticket on https:/bugreports.qt.io/projects/PYSIDE

Detailed Description

Warning

This section contains snippets that were automatically translated from C++ to Python and may contain errors.

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

__init__([parent=None])
Parameters:

parentQObject

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

See also

ContentType

__init__(contentType[, parent=None])
Parameters:

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

See also

ContentType

append(httpPart)
Parameters:

httpPartQHttpPart

Appends httpPart to this multipart.

boundary()
Return type:

QByteArray

returns the boundary.

See also

setBoundary()

setBoundary(boundary)
Parameters:

boundaryQByteArray

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

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