New in version 5.9.
def
__eq__
(other)
def
__ne__
(other)
def
setBody
(body)
def
setBodyDevice
(device)
def
setHeader
(header, value)
def
setRawHeader
(headerName, headerValue)
def
swap
(other)
QHttpPartclass holds a body part to be used inside a HTTP multipart MIME message (which is represented by theQHttpMultiPartclass). AQHttpPartconsists 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 bodyFor setting headers, use
setHeader()andsetRawHeader(), which behave exactly likesetHeader()andsetRawHeader().For reading small pieces of data, use
setBody(); for larger data blocks like e.g. images, usesetBodyDevice(). 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 viapost().为构建
QHttpPartwith 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");为构建
QHttpPartreading 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);注意:
QHttpPartdoes 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 forQHttpMultiPart.
PySide2.QtNetwork.QHttpPart.
__ne__
(
other
)
¶
other
–
QHttpPart
bool
返回
true
if this object is not the same as
other
.
另请参阅
operator==()
PySide2.QtNetwork.QHttpPart.
__eq__
(
other
)
¶
other
–
QHttpPart
bool
返回
true
if this object is the same as
other
(i.e., if they have the same headers and body).
另请参阅
operator!=()
PySide2.QtNetwork.QHttpPart.
setBody
(
body
)
¶
body
–
QByteArray
Sets the body of this MIME part to
body
. The body set with this method will be used unless the device is set via
setBodyDevice()
. For a large amount of data (e.g. an image), use
setBodyDevice()
, which will not copy the data internally.
另请参阅
PySide2.QtNetwork.QHttpPart.
setBodyDevice
(
device
)
¶
device
–
QIODevice
Sets the device to read the content from to
device
. For large amounts of data this method should be preferred over
setBody()
, because the content is not copied when using this method, but read directly from the device.
device
must be open and readable.
QHttpPart
未拥有所有权对于
device
, i.e. the device must be closed and destroyed if necessary. if
device
is sequential (e.g. sockets, but not files),
post()
should be called after
device
has emitted finished(). For unsetting the device and using data set via
setBody()
, use “(0)”.
PySide2.QtNetwork.QHttpPart.
setHeader
(
header
,
value
)
¶
header
–
KnownHeaders
value – object
Sets the value of the known header
header
to be
value
, overriding any previously set headers.
另请参阅
KnownHeaders
setRawHeader()
setHeader()
PySide2.QtNetwork.QHttpPart.
setRawHeader
(
headerName
,
headerValue
)
¶
headerName
–
QByteArray
headerValue
–
QByteArray
设置 Header 头
headerName
到值
headerValue
。若
headerName
对应已知 Header 头 (见
KnownHeaders
), the raw format will be parsed and the corresponding “cooked” header will be set as well.
注意
Setting the same header twice overrides the previous setting. To accomplish the behaviour of multiple HTTP headers of the same name, you should concatenate the two values, separating them with a comma (“,”) and set one single raw header.
另请参阅
KnownHeaders
setHeader()
setRawHeader()