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