StupidBeauty
Read times:2166Posted at: - no title specified

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

成员类型文档

enum QHttpMultiPart::ContentType

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

成员函数文档

QHttpMultiPart:: QHttpMultiPart ( ContentType contentType QObject  *  parent  = 0)

构造 一个内容类型为 contentType QHttpMultiPart ,并且将parent 设置为其亲代对象。

参考 QHttpMultiPart::ContentType

void  QHttpMultiPart:: append (const  QHttpPart  &  httpPart )

httpPart 追加到这个多片断消息中。

酒不醉人人自醉

柳岩

Your opinions

Your name:Email:Website url:Opinion content:
- no title specified

HxLauncher: Launch Android applications by voice commands