Auf dieser Seite

QFormDataPartBuilder Class

Die Klasse „QFormDataPartBuilder“ ist eine Hilfsklasse, die die Erstellung von „ QHttpPart “-Objekten vereinfacht. Mehr...

Header: #include <QFormDataPartBuilder>
CMake: find_package(Qt6 REQUIRED COMPONENTS Network)
target_link_libraries(mytarget PRIVATE Qt6::Network)
qmake: QT += network
Seit: Qt 6.8

Öffentliche Funktionen

QFormDataPartBuilder()
QFormDataPartBuilder(const QFormDataPartBuilder &other)
QFormDataPartBuilder(QFormDataPartBuilder &&other)
~QFormDataPartBuilder()
QFormDataPartBuilder setBody(QByteArrayView data, QAnyStringView fileName = {}, QAnyStringView mimeType = {})
QFormDataPartBuilder setBodyDevice(QIODevice *body, QAnyStringView fileName = {}, QAnyStringView mimeType = {})
QFormDataPartBuilder setHeaders(const QHttpHeaders &headers)
QFormDataPartBuilder &operator=(QFormDataPartBuilder &&other)
QFormDataPartBuilder &operator=(const QFormDataPartBuilder &other)

Ausführliche Beschreibung

Die Klasse `QFormDataPartBuilder` kann verwendet werden, um ein ` QHttpPart `-Objekt zu erstellen, bei dem der `Content-Disposition`-Header standardmäßig auf „form-data“ gesetzt ist. Das generierte Objekt kann dann als Teil einer Multipart-Nachricht verwendet werden (die durch die Klasse ` QHttpMultiPart ` repräsentiert wird).

Siehe auch „ QHttpPart “, „ QHttpMultiPart “ und „ QFormDataBuilder “.

Dokumentation zu den Mitgliedsfunktionen

[constexpr noexcept default] QFormDataPartBuilder::QFormDataPartBuilder()

Erstellt standardmäßig eine Instanz von ` QFormDataPartBuilder`.

[implicit] QFormDataPartBuilder::QFormDataPartBuilder(const QFormDataPartBuilder &other)

Erstellt eine Kopie von ` other`. Das Objekt ist so lange gültig, wie das zugehörige ` QFormDataBuilder ` nicht zerstört wurde.

Die Daten der Kopie werden gemeinsam genutzt (flache Kopie): Eine Änderung an einem Teil wirkt sich auch auf den anderen Teil aus.

QFormDataPartBuilder foo()
{
    QFormDataBuilder builder;
    auto qfdpb1 = builder.part("First"_L1);
    auto qfdpb2 = qfdpb1; // this creates a shallow copy

    qfdpb2.setBodyDevice(&image, "cutecat.jpg"); // qfdpb1 is also modified

    return qfdbp2;  // invalid, builder is destroyed at the end of the scope
}

[noexcept implicit] QFormDataPartBuilder::QFormDataPartBuilder(QFormDataPartBuilder &&other)

Erstellt eine Instanz von `QFormDataPartBuilder` und sorgt dafür, dass diese auf dasselbe Objekt verweist, auf das zuvor ` other ` verwiesen hat.

[noexcept implicit] QFormDataPartBuilder::~QFormDataPartBuilder()

Löscht das Objekt „ QFormDataPartBuilder “.

QFormDataPartBuilder QFormDataPartBuilder::setBody(QByteArrayView data, QAnyStringView fileName = {}, QAnyStringView mimeType = {})

Legt „ data “ als Hauptteil dieses MIME-Teils fest und, falls angegeben, „ fileName “ als Dateinamenparameter im „Content-Disposition“-Header.

Wenn mimeType nicht angegeben ist (leer ist), versucht QFormDataPartBuilder, den MIME-Typ von data mithilfe von QMimeDatabase automatisch zu ermitteln.

Ein nachfolgender Aufruf von ` setBodyDevice()` verwirft den Body, und stattdessen wird das Gerät verwendet.

Bei großen Datenmengen (z. B. einem Bild) wird setBodyDevice() bevorzugt, da dabei die Daten intern nicht kopiert werden.

Siehe auch ` setBodyDevice()`.

QFormDataPartBuilder QFormDataPartBuilder::setBodyDevice(QIODevice *body, QAnyStringView fileName = {}, QAnyStringView mimeType = {})

Legt „ body “ als Body-Gerät dieses Teils und „ fileName “ als Dateinamenparameter im „Content-Disposition“-Header fest.

Wenn „ mimeType “ nicht angegeben ist (leer ist), versucht „ QFormDataPartBuilder “, den MIME-Typ von „ body “ mithilfe von „ QMimeDatabase “ automatisch zu ermitteln.

Ein nachfolgender Aufruf von ` setBody()` verwirft das Body-Device, und stattdessen werden die von ` setBody()` festgelegten Daten verwendet.

Bei großen Datenmengen sollte diese Methode gegenüber setBody() bevorzugt werden, da der Inhalt bei Verwendung dieser Methode nicht kopiert, sondern direkt vom Gerät gelesen wird.

body muss geöffnet und lesbar sein. ` QFormDataPartBuilder ` übernimmt keine Verantwortung für ` body`, d. h., das Gerät muss geschlossen und gegebenenfalls freigegeben werden.

Hinweis: Wenn „ body “ sequenziell ist (z. B. Sockets, jedoch keine Dateien), sollte „ QNetworkAccessManager::post()“ aufgerufen werden, nachdem „ body “ „finished()“ ausgegeben hat.

Siehe auch ` setBody()` und ` QHttpPart::setBodyDevice()`.

QFormDataPartBuilder QFormDataPartBuilder::setHeaders(const QHttpHeaders &headers)

Legt die in headers angegebenen Header fest.

Hinweis: Die Header „content-type“ und „content-disposition“ werden, sofern sie in „ headers “ angegeben sind, von der Klasse überschrieben.

[implicit] QFormDataPartBuilder &QFormDataPartBuilder::operator=(QFormDataPartBuilder &&other)

Weist „ other “ dieser „ QFormDataPartBuilder “-Instanz zu.

[implicit] QFormDataPartBuilder &QFormDataPartBuilder::operator=(const QFormDataPartBuilder &other)

Weist „ other “ der Adresse „ QFormDataPartBuilder “ zu und gibt eine Referenz auf diese Adresse „ QFormDataPartBuilder “ zurück. Das Objekt ist so lange gültig, wie das zugehörige Objekt „ QFormDataBuilder “ nicht zerstört wurde.

Die Daten der Kopie werden gemeinsam genutzt (flache Kopie): Eine Änderung an einem Teil wirkt sich auch auf den anderen Teil aus.

QFormDataPartBuilder foo()
{
    QFormDataBuilder builder;
    auto qfdpb1 = builder.part("First"_L1);
    auto qfdpb2 = qfdpb1; // this creates a shallow copy

    qfdpb2.setBodyDevice(&image, "cutecat.jpg"); // qfdpb1 is also modified

    return qfdbp2;  // invalid, builder is destroyed at the end of the scope
}

© 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.