Qyoto  4.0.5
Qyoto is a C# language binding for Qt
 All Classes Namespaces Functions Variables Typedefs Enumerations Properties
QtNetwork.QHttpPart Class Reference

The QHttpPart class holds a body part to be used inside a HTTP multipart MIME message. More...

Inheritance diagram for QtNetwork.QHttpPart:
Collaboration diagram for QtNetwork.QHttpPart:

Public Member Functions

override bool Equals (object o)
 
override int GetHashCode ()
 
 QHttpPart ()
 
 
 QHttpPart (QHttpPart other)
 
 
virtual void CreateProxy ()
 
new void SetBody (QByteArray body)
 
 
new void SetBodyDevice (QIODevice device)
 
 
new void SetHeader (QNetworkRequest.KnownHeaders header, object value)
 
 
new void SetRawHeader (QByteArray headerName, QByteArray headerValue)
 
 
new void Dispose ()
 

Static Public Member Functions

static bool operator!= (QHttpPart arg1, QHttpPart arg2)
 
 
static bool operator== (QHttpPart arg1, QHttpPart arg2)
 
 

Protected Member Functions

 QHttpPart (System.Type dummy)
 

Protected Attributes

SmokeInvocation interceptor
 

Properties

virtual System.IntPtr SmokeObject [get, set]
 

Detailed Description

The QHttpPart class holds a body part to be used inside a HTTP multipart MIME message.

The QHttpPart class holds a body part to be used inside a HTTP multipart MIME message (which is represented by the QHttpMultiPart class). A QHttpPart consists 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 body

For setting headers, use setHeader() and setRawHeader(), which behave exactly like QNetworkRequest::setHeader() and QNetworkRequest::setRawHeader().

For reading small pieces of data, use setBody(); for larger data blocks like e.g. images, use setBodyDevice(). 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 via QNetworkAccessManager::post().

To construct a QHttpPart with 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");

To construct a QHttpPart reading 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@co.nosp@m.nten.nosp@m.t.id"); // add any headers you like via setRawHeader()

QFile *file = new QFile("image.jpg");

file->open(QIODevice::ReadOnly);

imagePart.setBodyDevice(file);

Be aware that QHttpPart does 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 for QHttpMultiPart.

See also QHttpMultiPart and QNetworkAccessManager.

Constructor & Destructor Documentation

QtNetwork.QHttpPart.QHttpPart ( System.Type  dummy)
protected
QtNetwork.QHttpPart.QHttpPart ( )

Constructs an empty QHttpPart object.

QtNetwork.QHttpPart.QHttpPart ( QHttpPart  other)

Creates a copy of other.

Member Function Documentation

virtual void QtNetwork.QHttpPart.CreateProxy ( )
virtual
new void QtNetwork.QHttpPart.Dispose ( )
override bool QtNetwork.QHttpPart.Equals ( object  o)
override int QtNetwork.QHttpPart.GetHashCode ( )
static bool QtNetwork.QHttpPart.operator!= ( QHttpPart  arg1,
QHttpPart  arg2 
)
static

Returns true if this object is not the same as other.

See also operator==().

static bool QtNetwork.QHttpPart.operator== ( QHttpPart  arg1,
QHttpPart  arg2 
)
static

Returns true if this object is the same as other (i.e., if they have the same headers and body).

See also operator!=().

new void QtNetwork.QHttpPart.SetBody ( QByteArray  body)

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.

See also setBodyDevice().

new void QtNetwork.QHttpPart.SetBodyDevice ( QIODevice  device)

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 does not take ownership of device, i.e. the device must be closed and destroyed if necessary. if device is sequential (e.g. sockets, but not files), QNetworkAccessManager::post() should be called after device has emitted finished(). For unsetting the device and using data set via setBody(), use "setBodyDevice(0)".

See also setBody() and QNetworkAccessManager::post().

new void QtNetwork.QHttpPart.SetHeader ( QNetworkRequest.KnownHeaders  header,
object  value 
)

Sets the value of the known header header to be value, overriding any previously set headers.

See also QNetworkRequest::KnownHeaders, setRawHeader(), and QNetworkRequest::setHeader().

new void QtNetwork.QHttpPart.SetRawHeader ( QByteArray  headerName,
QByteArray  headerValue 
)

Sets the header headerName to be of value headerValue. If headerName corresponds to a known header (see QNetworkRequest::KnownHeaders), the raw format will be parsed and the corresponding "cooked" header will be set as well.

Note: 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.

See also QNetworkRequest::KnownHeaders, setHeader(), and QNetworkRequest::setRawHeader().

Member Data Documentation

SmokeInvocation QtNetwork.QHttpPart.interceptor
protected

Property Documentation

virtual System.IntPtr QtNetwork.QHttpPart.SmokeObject
getset