Qt5.2文档翻译:QHttpMultiPart类,QHttpMultiPart Class
QHttpMultiPart 类,用来组装一个 MIME 多片断消息,以通过 HTTP 发送。 详 细说明 ……
头文件: |
#include <QHttpMultiPart> |
qmake: |
QT += network |
自此版本开始引入: |
Qt 4.8 |
继承: |
QObject 。 |
QHttpMultiPart类,用来组装一个MIME多片断消息,以通过HTTP发送。
QHttpMultiPart按照RFC 2046 的说明来组装一个MIME 多片断消息,以用于通过HTTP 来发送。 一个多片断的消息,是由任意数量的消息体部分 (参考 QHttpPart )组成 的, 这些部分之间由唯一的边界字符串来分隔。QHttpMultiPart 中的边界,是由字符串"boundary_.oOo._"后面跟上随机字符组成的, 它具有足够的唯一性,以避免它本身出现在各个消息部分里。如果 妳觉得有必要的话,仍然可以通过 setBoundary ()来设置边界。
举个例子,看看下面这个代码片断,它构造了一个多片断消息,其中包含着一个文本部分和一个图片部分:
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); // 我们现在还不能删除这个文件对象,所以,让它随着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); // 让multiPart随着reply 被删除
// 这里,连接信号,等等……
参考 QHttpPart 和 QNetworkAccessManager::post () 。
按照RFC 2046 和其它文档的说明,已知的多片断子类型的内容类型列表。
常量 |
值 |
说明 |
QHttpMultiPart::MixedType |
0 |
对应于"multipart/mixed"子类型,表示,其中的消息体各个部分是互相独立的,正如RFC 2046 中所说。 |
QHttpMultiPart::RelatedType |
1 |
对应于"multipart/related"子类型,表示,其中的消息体各个部分是相关的,正如RFC 2387中所说。 |
QHttpMultiPart::FormDa taType |
2 |
对应于"multipart/form-data"子类型,表示,其中的消息体包 含着表单元素,正如RFC 2388中所说。 |
QHttpMultiPart::AlternativeType |
3 |
对应于"multipart/alternative"子类型,表示,其中的消息体各个部分是对于同一份信息的不同表示方式,正如RFC 2046所说。 |
参考 setContentType () 。
构造 一个内容类型为 contentType 的 QHttpMultiPart ,并且将parent 设置为其亲代对象。
参考 QHttpMultiPart::ContentType 。
将 httpPart 追加到这个多片断消息中。
酒不醉人人自醉
柳岩
Your opinionsHxLauncher: Launch Android applications by voice commands