Viadeo Twitter Google Bookmarks ! Facebook Digg del.icio.us MySpace Yahoo MyWeb Blinklist Netvouz Reddit Simpy StumbleUpon Bookmarks Windows Live Favorites 
Logo Documentation Qt ·  Page d'accueil  ·  Toutes les classes  ·  Classes principales  ·  Annotées  ·  Classes groupées  ·  Modules  ·  Fonctions  · 

QHttpMultiPart Class

The QHttpMultiPart class resembles a MIME multipart message to be sent over HTTP. More...

 #include <QHttpMultiPart>

Inherits: QObject.

This class was introduced in Qt 4.8.

Public Types

enum ContentType { MixedType, RelatedType, FormDataType, AlternativeType }

Public Functions

QHttpMultiPart(QObject * parent = 0)
QHttpMultiPart(ContentType contentType, QObject * parent = 0)
~QHttpMultiPart()
void append(const QHttpPart & httpPart)
QByteArray boundary() const
void setBoundary(const QByteArray & boundary)
void setContentType(ContentType contentType)
  • 31 public functions inherited from QObject

Additional Inherited Members

  • 1 property inherited from QObject
  • 1 public slot inherited from QObject
  • 2 signal inherited from QObject
  • 11 static public members inherited from QObject
  • 9 protected functions inherited from QObject

Detailed Description

The QHttpMultiPart class resembles a MIME multipart message to be sent over HTTP.

The QHttpMultiPart resembles a MIME multipart message, as described in RFC 2046, which is to be sent over HTTP. A multipart message consists of an arbitrary number of body parts (see QHttpPart), which are separated by a unique boundary. The boundary of the QHttpMultiPart is constructed with the string "boundary_.oOo._" followed by random characters, and provides enough uniqueness to make sure it does not occur inside the parts itself. If desired, the boundary can still be set via setBoundary().

As an example, consider the following code snippet, which constructs a multipart message containing a text part followed by an image part:

 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); // we cannot delete the file now, so delete it with the 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); // delete the multiPart with the reply
 // here connect signals etc.

See also QHttpPart and QNetworkAccessManager::post().

Member Type Documentation

enum QHttpMultiPart::ContentType

List of known content types for a multipart subtype as described in RFC 2046 and others.

ConstantValueDescription
QHttpMultiPart::MixedType0corresponds to the "multipart/mixed" subtype, meaning the body parts are independent of each other, as described in RFC 2046.
QHttpMultiPart::RelatedType1corresponds to the "multipart/related" subtype, meaning the body parts are related to each other, as described in RFC 2387.
QHttpMultiPart::FormDataType2corresponds to the "multipart/form-data" subtype, meaning the body parts contain form elements, as described in RFC 2388.
QHttpMultiPart::AlternativeType3corresponds to the "multipart/alternative" subtype, meaning the body parts are alternative representations of the same information, as described in RFC 2046.

See also setContentType().

Member Function Documentation

QHttpMultiPart::QHttpMultiPart(QObject * parent = 0)

Constructs a QHttpMultiPart with content type MixedType and sets parent as the parent object.

See also QHttpMultiPart::ContentType.

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

Constructs a QHttpMultiPart with content type contentType and sets parent as the parent object.

See also QHttpMultiPart::ContentType.

QHttpMultiPart::~QHttpMultiPart()

Destroys the multipart.

void QHttpMultiPart::append(const QHttpPart & httpPart)

Appends httpPart to this multipart.

QByteArray QHttpMultiPart::boundary() const

returns the boundary.

See also setBoundary().

void QHttpMultiPart::setBoundary(const QByteArray & boundary)

Sets the boundary to boundary.

Usually, you do not need to generate a boundary yourself; upon construction the boundary is initiated with the string "boundary_.oOo._" followed by random characters, and provides enough uniqueness to make sure it does not occur inside the parts itself.

See also boundary().

void QHttpMultiPart::setContentType(ContentType contentType)

Sets the content type to contentType. The content type will be used in the HTTP header section when sending the multipart message via QNetworkAccessManager::post(). In case you want to use a multipart subtype not contained in QHttpMultiPart::ContentType, you can add the "Content-Type" header field to the QNetworkRequest by hand, and then use this request together with the multipart message for posting.

See also QHttpMultiPart::ContentType and QNetworkAccessManager::post().

Cette page est une traduction d'une page de la documentation de Qt, écrite par Nokia Corporation and/or its subsidiary(-ies). Les éventuels problèmes résultant d'une mauvaise traduction ne sont pas imputables à Nokia. Qt 5.0-snapshot
Copyright © 2012 Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon, vous encourez selon la loi jusqu'à 3 ans de prison et jusqu'à 300 000 E de dommages et intérêts. Cette page est déposée à la SACD.
Vous avez déniché une erreur ? Un bug ? Une redirection cassée ? Ou tout autre problème, quel qu'il soit ? Ou bien vous désirez participer à ce projet de traduction ? N'hésitez pas à nous contacter ou par MP !
 
 
 
 
Partenaires

Hébergement Web