HTTP multipart MIME 消息由QHttpMultiPart 封装。而 QHttpPart 类封装了 HTTP multipart MIME 消息中的正文部分。
一个 QHttpPart 由一个头块和一个数据块组成,它们之间由空行相互分隔。如:
Content-Type: text/plain
Content-Disposition: form-data; name="text"here goes the body
用代码表示是:
QHttpPart textPart;
textPart.setHeader(QNetworkRequest::ContentTypeHeader, QVariant("text/plain"));
textPart.setHeader(QNetworkRequest::ContentDispositionHeader, QVariant("form-data; name=\"text\""));
textPart.setBody("here goes the body");
从设备(例如文件)读取信息构造QHttpPart:
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");
QFile *file = new QFile("image.jpg");
file->open(QIODevice::ReadOnly);
imagePart.setBodyDevice(file);
setHeader()添加的标头只能是QNetworkRequest::KnownHeaders中的值。
setRawHeader()用来添加自定义标头。