QHttpMultiPart

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

Inheritance diagram of PySide2.QtNetwork.QHttpMultiPart

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:

QHttpMultiPart *multiPart = new QHttpMultiPart(QHttpMultiPart::FormDataType);

QHttpPart textPart;
textPart.setHeader(QNetworkRequest::ContentDispositionHeader, QVariant("form-data; name=\"text\""));
textPart.setBody("my text");

QHttpPart imagePart;
imagePart.setHeader(QNetworkRequest::ContentTypeHeader, QVariant("image/jpeg"));
imagePart.setHeader(QNetworkRequest::ContentDispositionHeader, QVariant("form-data; name=\"image\""));
QFile *file = new 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);

QUrl url("http://my.server.tld");
QNetworkRequest request(url);

QNetworkAccessManager manager;
QNetworkReply *reply = manager.post(request, multiPart);
multiPart->setParent(reply); // delete the multiPart with the reply
// here connect signals etc.

See also

QHttpPart post()

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

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

param parent

PySide2.QtCore.QObject

param contentType

ContentType

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

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

PySide2.QtNetwork.QHttpMultiPart.append(httpPart)
Parameters

httpPartPySide2.QtNetwork.QHttpPart

Appends httpPart to this multipart.

PySide2.QtNetwork.QHttpMultiPart.boundary()
Return type

PySide2.QtCore.QByteArray

returns the boundary.

See also

setBoundary()

PySide2.QtNetwork.QHttpMultiPart.setBoundary(boundary)
Parameters

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

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