QHttpMultiPart Class
Die Klasse „QHttpMultiPart“ entspricht einer MIME-Multipart-Nachricht, die über HTTP gesendet werden soll. Mehr...
| Header: | #include <QHttpMultiPart> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS Network) target_link_libraries(mytarget PRIVATE Qt6::Network) |
| qmake: | QT += network |
| Erbt von: | QObject |
- Liste aller Mitglieder, einschließlich geerbter Mitglieder
- QHttpMultiPart ist Teil der Netzwerkprogrammier-API.
Öffentliche Typen
| enum | ContentType { MixedType, RelatedType, FormDataType, AlternativeType } |
Öffentliche Funktionen
| 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) |
Ausführliche Beschreibung
QHttpMultiPart ähnelt einer MIME-Multipart-Nachricht gemäß RFC 2046, die über HTTP gesendet werden soll. Eine Multipart-Nachricht besteht aus einer beliebigen Anzahl von Body-Teilen (siehe QHttpPart), die durch eine eindeutige Grenze getrennt sind. Die Trennzeichen des QHttpMultiPart werden aus der Zeichenfolge „boundary_.oOo._“ gefolgt von zufälligen Zeichen gebildet und sind so einzigartig, dass sie innerhalb der Teile selbst nicht vorkommen. Falls gewünscht, kann das Trennzeichen weiterhin über setBoundary() festgelegt werden.
Betrachten Sie als Beispiel den folgenden Codeausschnitt, der eine Multipart-Nachricht erstellt, die einen Textteil gefolgt von einem Bildteil enthält:
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.Siehe auch „ QHttpPart “ und „ QNetworkAccessManager::post()“.
Dokumentation zu Mitgliedstypen
enum QHttpMultiPart::ContentType
Liste der bekannten Inhaltstypen für einen Multipart-Subtyp gemäß RFC 2046 und anderen.
| Konstante | Wert | Beschreibung |
|---|---|---|
QHttpMultiPart::MixedType | 0 | entspricht dem Subtyp „multipart/mixed“, was bedeutet, dass die Body-Teile voneinander unabhängig sind, wie in RFC 2046 beschrieben. |
QHttpMultiPart::RelatedType | 1 | entspricht dem Subtyp „multipart/related“, was bedeutet, dass die Body-Teile miteinander in Beziehung stehen, wie in RFC 2387 beschrieben. |
QHttpMultiPart::FormDataType | 2 | entspricht dem Subtyp „multipart/form-data“, was bedeutet, dass die Body-Teile Formularelemente enthalten, wie in RFC 2388 beschrieben. |
QHttpMultiPart::AlternativeType | 3 | entspricht dem Subtyp „multipart/alternative“, was bedeutet, dass die Body-Teile alternative Darstellungen derselben Informationen sind, wie in RFC 2046 beschrieben. |
Siehe auch setContentType().
Dokumentation der Mitgliedsfunktionen
[explicit] QHttpMultiPart::QHttpMultiPart(QObject *parent = nullptr)
Erstellt ein QHttpMultiPart-Objekt mit dem Inhaltstyp „ MixedType “ und legt „ parent “ als übergeordnetes Objekt fest.
Siehe auch QHttpMultiPart::ContentType.
[explicit] QHttpMultiPart::QHttpMultiPart(QHttpMultiPart::ContentType contentType, QObject *parent = nullptr)
Erstellt ein QHttpMultiPart-Objekt mit dem Inhaltstyp „ contentType “ und legt „parent“ als übergeordnetes Objekt fest.
Siehe auch ` QHttpMultiPart::ContentType`.
[virtual noexcept] QHttpMultiPart::~QHttpMultiPart()
Löscht die Mehrteilige.
void QHttpMultiPart::append(const QHttpPart &httpPart)
Fügt „ httpPart “ an diesen Multipart-Eintrag an.
QByteArray QHttpMultiPart::boundary() const
gibt die Begrenzung zurück.
Siehe auch setBoundary().
void QHttpMultiPart::setBoundary(const QByteArray &boundary)
Legt die Grenze auf „ boundary “ fest.
Normalerweise müssen Sie die Begrenzung nicht selbst generieren; bei der Erstellung wird die Begrenzung mit der Zeichenkette „boundary_.oOo._“, gefolgt von zufälligen Zeichen, initialisiert und bietet genügend Eindeutigkeit, um sicherzustellen, dass sie nicht innerhalb der Teile selbst vorkommt.
Siehe auch boundary().
void QHttpMultiPart::setContentType(QHttpMultiPart::ContentType contentType)
Legt den Inhaltstyp auf „ contentType “ fest. Der Inhaltstyp wird im HTTP-Header-Bereich verwendet, wenn die Multipart-Nachricht über „ QNetworkAccessManager::post()“ gesendet wird. Falls Sie einen Multipart-Subtyp verwenden möchten, der nicht in „ QHttpMultiPart::ContentType “ enthalten ist, können Sie das Header-Feld „Content-Type“ manuell zum „ QNetworkRequest “ hinzufügen und diese Anfrage dann zusammen mit der Multipart-Nachricht zum Posten verwenden.
Siehe auch QHttpMultiPart::ContentType und 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.