QHttpMultiPart Class
La classe QHttpMultiPart ressemble à un message MIME multipart à envoyer via HTTP. Plus d'informations...
| En-tête : | #include <QHttpMultiPart> |
| CMake : | find_package(Qt6 REQUIRED COMPONENTS Network)target_link_libraries(mytarget PRIVATE Qt6::Network) |
| qmake : | QT += network |
| Héritages : | QObject |
- Liste de tous les membres, y compris les membres hérités
- QHttpMultiPart fait partie de l'API de programmation réseau.
Types publics
| enum | ContentType { MixedType, RelatedType, FormDataType, AlternativeType } |
Fonctions publiques
| QHttpMultiPart(QObject *parent = nullptr) | |
| QHttpMultiPart(QHttpMultiPart::ContentType contentType, QObject *parent = nullptr) | |
| virtual | ~QHttpMultiPart() |
| void | append(const QHttpPart &httpPart) |
| QByteArray | boundary() const |
| void | setBoundary(const QByteArray &boundary) |
| void | setContentType(QHttpMultiPart::ContentType contentType) |
Description détaillée
QHttpMultiPart ressemble à un message MIME multipart, tel que décrit dans la RFC 2046, qui doit être envoyé via HTTP. Un message multipartite se compose d'un nombre arbitraire de parties (voir QHttpPart), qui sont séparées par une frontière unique. La frontière du QHttpMultiPart est construite avec la chaîne "boundary_.oOo._" suivie de caractères aléatoires, et fournit suffisamment d'unicité pour s'assurer qu'elle ne se produit pas à l'intérieur des parties elles-mêmes. Si vous le souhaitez, la frontière peut toujours être définie via setBoundary().
À titre d'exemple, considérons l'extrait de code suivant, qui construit un message multipartite contenant une partie texte suivie d'une partie image :
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.
Voir également QHttpPart et QNetworkAccessManager::post().
Documentation sur les types de membres
enum QHttpMultiPart::ContentType
Liste des types de contenu connus pour un sous-type de multipart tel que décrit dans la RFC 2046 et autres.
| Constante | Valeur | Description |
|---|---|---|
QHttpMultiPart::MixedType | 0 | correspond au sous-type "multipart/mixed", c'est-à-dire que les parties du corps sont indépendantes les unes des autres, comme décrit dans la RFC 2046. |
QHttpMultiPart::RelatedType | 1 | correspond au sous-type "multipart/related", ce qui signifie que les parties du corps sont liées les unes aux autres, comme décrit dans le RFC 2387. |
QHttpMultiPart::FormDataType | 2 | correspond au sous-type "multipart/form-data", ce qui signifie que les parties du corps contiennent des éléments de formulaire, comme décrit dans le RFC 2388. |
QHttpMultiPart::AlternativeType | 3 | correspond au sous-type "multipart/alternative", ce qui signifie que les parties du corps sont des représentations alternatives de la même information, comme décrit dans le RFC 2046. |
Voir également setContentType().
Documentation des fonctions membres
[explicit] QHttpMultiPart::QHttpMultiPart(QObject *parent = nullptr)
Construit un QHttpMultiPart avec le type de contenu MixedType et définit parent comme objet parent.
Voir aussi QHttpMultiPart::ContentType.
[explicit] QHttpMultiPart::QHttpMultiPart(QHttpMultiPart::ContentType contentType, QObject *parent = nullptr)
Construit un QHttpMultiPart avec le type de contenu contentType et définit parent comme l'objet parent.
Voir aussi QHttpMultiPart::ContentType.
[virtual noexcept] QHttpMultiPart::~QHttpMultiPart()
Détruit la partie multiple.
void QHttpMultiPart::append(const QHttpPart &httpPart)
Ajoute httpPart à ce multipart.
QByteArray QHttpMultiPart::boundary() const
renvoie la frontière.
Voir aussi setBoundary().
void QHttpMultiPart::setBoundary(const QByteArray &boundary)
Fixe la frontière à boundary.
En général, il n'est pas nécessaire de générer une frontière soi-même ; lors de sa construction, la frontière est initiée par la chaîne "boundary_.oOo._" suivie de caractères aléatoires, et fournit suffisamment d'unicité pour s'assurer qu'elle ne se produit pas à l'intérieur des parties elles-mêmes.
Voir également boundary().
void QHttpMultiPart::setContentType(QHttpMultiPart::ContentType contentType)
Définit le type de contenu à contentType. Le type de contenu sera utilisé dans la section d'en-tête HTTP lors de l'envoi du message multipartite via QNetworkAccessManager::post(). Si vous souhaitez utiliser un sous-type de message multipartite qui n'est pas contenu dans QHttpMultiPart::ContentType, vous pouvez ajouter manuellement le champ d'en-tête "Content-Type" à QNetworkRequest, puis utiliser cette demande avec le message multipartite pour l'envoi.
Voir aussi QHttpMultiPart::ContentType et QNetworkAccessManager::post().
© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.