QHttpMultiPart Class
Die Klasse QHttpMultiPart ähnelt einer MIME-Multipart-Nachricht, die über HTTP gesendet wird. Mehr...
Kopfzeile: | #include <QHttpMultiPart> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS Network) target_link_libraries(mytarget PRIVATE Qt6::Network) |
qmake: | QT += network |
Vererbt: | QObject |
- Liste aller Mitglieder, einschließlich geerbter Mitglieder
- QHttpMultiPart ist Teil der Network Programming 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) |
Detaillierte Beschreibung
QHttpMultiPart ähnelt einer MIME-Multipart-Nachricht, wie in RFC 2046 beschrieben, die über HTTP gesendet werden soll. Eine Multipart-Nachricht besteht aus einer beliebigen Anzahl von Körperteilen (siehe QHttpPart), die durch eine eindeutige Begrenzung getrennt sind. Die Begrenzung des QHttpMultiPart wird mit der Zeichenkette "boundary_.oOo._", gefolgt von zufälligen Zeichen, konstruiert und bietet genug Eindeutigkeit, um sicherzustellen, dass sie nicht innerhalb der Teile selbst vorkommt. Falls gewünscht, kann die Begrenzung immer noch über setBoundary() gesetzt werden.
Als Beispiel sei der folgende Codeausschnitt angeführt, der eine mehrteilige Nachricht mit einem Textteil, gefolgt von einem Bildteil, erstellt:
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 der Mitgliedstypen
enum QHttpMultiPart::ContentType
Liste der bekannten Inhaltstypen für einen Multipart-Subtyp, wie in RFC 2046 und anderen beschrieben.
Konstante | Wert | Beschreibung |
---|---|---|
QHttpMultiPart::MixedType | 0 | entspricht dem Subtyp "multipart/mixed", d. h. die Körperteile sind unabhängig voneinander, wie in RFC 2046 beschrieben. |
QHttpMultiPart::RelatedType | 1 | entspricht dem Subtyp "multipart/related", d. h. die Körperteile stehen in Beziehung zueinander, wie in RFC 2387 beschrieben. |
QHttpMultiPart::FormDataType | 2 | entspricht dem Subtyp "multipart/form-data", was bedeutet, dass die Körperteile Formularelemente enthalten, wie in RFC 2388 beschrieben. |
QHttpMultiPart::AlternativeType | 3 | entspricht dem Subtyp "multipart/alternative", was bedeutet, dass die Körperteile alternative Darstellungen der gleichen Informationen sind, wie in RFC 2046 beschrieben. |
Siehe auch setContentType().
Dokumentation der Mitgliedsfunktionen
[explicit]
QHttpMultiPart::QHttpMultiPart(QObject *parent = nullptr)
Konstruiert einen QHttpMultiPart mit dem Inhaltstyp MixedType und setzt parent als übergeordnetes Objekt.
Siehe auch QHttpMultiPart::ContentType.
[explicit]
QHttpMultiPart::QHttpMultiPart(QHttpMultiPart::ContentType contentType, QObject *parent = nullptr)
Konstruiert einen QHttpMultiPart mit dem Inhaltstyp contentType und setzt parent als übergeordnetes Objekt.
Siehe auch QHttpMultiPart::ContentType.
[virtual noexcept]
QHttpMultiPart::~QHttpMultiPart()
Zerstört den Mehrteiler.
void QHttpMultiPart::append(const QHttpPart &httpPart)
Hängt httpPart an diesen Multipart an.
QByteArray QHttpMultiPart::boundary() const
gibt die Begrenzung zurück.
Siehe auch setBoundary().
void QHttpMultiPart::setBoundary(const QByteArray &boundary)
Setzt die Begrenzung auf boundary.
Normalerweise müssen Sie eine Begrenzung nicht selbst generieren; bei der Erstellung wird die Begrenzung mit der Zeichenkette "boundary_.oOo._", gefolgt von zufälligen Zeichen, eingeleitet und bietet genug Eindeutigkeit, um sicherzustellen, dass sie nicht innerhalb der Teile selbst vorkommt.
Siehe auch boundary().
void QHttpMultiPart::setContentType(QHttpMultiPart::ContentType contentType)
Setzt den Inhaltstyp auf contentType. Der Inhaltstyp wird im HTTP-Header-Abschnitt verwendet, wenn die mehrteilige 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" von Hand in QNetworkRequest einfügen und diese Anforderung dann zusammen mit der Multipart-Nachricht für die Versendung verwenden.
Siehe auch QHttpMultiPart::ContentType und QNetworkAccessManager::post().
© 2025 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.