Home · All Classes · Modules · QSS HELP · QSS 案例 · VER007 HOME |
该QHttpPart类包含一个身体的一部分被里面一个HTTP多部分MIME消息中使用。More...
该QHttpPart类包含一个身体的一部分被里面一个HTTP多部分MIME消息中使用。
该QHttpPart类持有被里面一个HTTP多部分MIME消息中使用身体的一部分(这是由代表QHttpMultiPart类)。一个QHttpPart由一个头块和数据块,这是由彼此分开由两个连续的新行。为一个部分的一个例子是:
Content-Type: text/plain Content-Disposition: form-data; name="text" here goes the body
设置页眉,使用setHeader()和setRawHeader(),它的行为完全一样QNetworkRequest.setHeader()和QNetworkRequest.setRawHeader( ) 。
读取小块数据,使用setBody();对于像例如更大的数据块图像,使用setBodyDevice( ) 。后一种方法通过不复制数据在内部,而是直接从设备读取节省内存。这意味着该设备必须打开,并在读取时,含有人体部分的多部分消息是通过发送网络上的那一刻QNetworkAccessManager.post( ) 。
要构造一个小的身体QHttpPart ,考虑下面的代码片断(这将产生在上面的例子中显示的数据) :
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"); // add any headers you like via setRawHeader() QFile *file = new QFile("image.jpg"); file->open(QIODevice.ReadOnly); imagePart.setBodyDevice(file);
请注意, QHttpPart不走设备的所有权时设置,所以它是开发人员的责任消灭它时,它不再需要。一个好的想法可能是设置多部分消息,作为该设备的父对象,如记录在该文件QHttpMultiPart。
构造一个空QHttpPart对象。
创建副本other。
设置此MIME部分的正文body。该机构设置用这种方法将被使用,除非该设备是通过设置setBodyDevice( ) 。对于大量的数据(例如图像) ,利用setBodyDevice(),它不会在内部复制数据。
See also setBodyDevice( ) 。
设置设备从阅读的内容device。对于大量的数据,该方法应优先于setBody(),因为使用这种方法,当内容不被复制,而是直接从设备读取。device必须是开放性和可读性。QHttpPart不采取所有权device,即该设备必须被关闭,并且,如果必要的破坏。如果device是连续的(如插座,但不是文件) ,QNetworkAccessManager.post( )后,应该调用device已发出的成品( ) 。为你重置设备,并通过使用数据集setBody( )时,使用“ setBodyDevice (0)” 。
See also setBody()和QNetworkAccessManager.post( ) 。
设置了已知头的值header要value,复盖任何先前设置的标头。
See also QNetworkRequest.KnownHeaders,setRawHeader()和QNetworkRequest.setHeader( ) 。
设置页眉headerName有利用价值headerValue。如果headerName对应于一个已知的报头(参见QNetworkRequest.KnownHeaders) , raw格式将被解析和相应的“熟”头将被设置为好。
注意:在设置相同的头两次将复盖以前的设置。为了实现多个同名的HTTP头的行为,你应该将两者连接起来的值,用逗号将它们隔开( “,” ),并设置一个单一的原始标题。
See also QNetworkRequest.KnownHeaders,setHeader()和QNetworkRequest.setRawHeader( ) 。
PyQt 4.10.3 for X11 | Copyright © Riverbank Computing Ltd and Nokia 2012 | Qt 4.8.5 |