QHttpPart ClassThe QHttpPart class holds a body part to be used inside a HTTP multipart MIME message. More... #include <QHttpPart> This class was introduced in Qt 4.8. Public Functions
Detailed DescriptionThe QHttpPart class holds a body part to be used inside a HTTP multipart MIME message. The QHttpPart class holds a body part to be used inside a HTTP multipart MIME message (which is represented by the QHttpMultiPart class). A QHttpPart consists of a header block and a data block, which are separated by each other by two consecutive new lines. An example for one part would be: Content-Type: text/plain Content-Disposition: form-data; name="text" here goes the body For setting headers, use setHeader() and setRawHeader(), which behave exactly like QNetworkRequest::setHeader() and QNetworkRequest::setRawHeader(). For reading small pieces of data, use setBody(); for larger data blocks like e.g. images, use setBodyDevice(). The latter method saves memory by not copying the data internally, but reading directly from the device. This means that the device must be opened and readable at the moment when the multipart message containing the body part is sent on the network via QNetworkAccessManager::post(). To construct a QHttpPart with a small body, consider the following snippet (this produces the data shown in the example above): QHttpPart textPart; textPart.setHeader(QNetworkRequest::ContentTypeHeader, QVariant("text/plain")); textPart.setHeader(QNetworkRequest::ContentDispositionHeader, QVariant("form-data; name=\"text\"")); textPart.setBody("here goes the body"); To construct a QHttpPart reading from a device (e.g. a file), the following can be applied: QHttpPart imagePart; imagePart.setHeader(QNetworkRequest::ContentTypeHeader, QVariant("image/jpeg")); imagePart.setHeader(QNetworkRequest::ContentDispositionHeader, QVariant("form-data; name=\"image\"")); imagePart.setRawHeader("Content-ID", "my@content.id"); // add any headers you like via setRawHeader() QFile *file = new QFile("image.jpg"); file->open(QIODevice::ReadOnly); imagePart.setBodyDevice(file); Be aware that QHttpPart does not take ownership of the device when set, so it is the developer's responsibility to destroy it when it is not needed anymore. A good idea might be to set the multipart message as parent object for the device, as documented at the documentation for QHttpMultiPart. See also QHttpMultiPart and QNetworkAccessManager. Member Function Documentation
|