QFormDataPartBuilder Class

Die Klasse QFormDataPartBuilder ist eine Komfortklasse zur Vereinfachung der Konstruktion von QHttpPart Objekten. Mehr...

Kopfzeile: #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(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)

Detaillierte Beschreibung

Die Klasse QFormDataPartBuilder kann verwendet werden, um ein QHttpPart -Objekt zu erstellen, bei dem der Content Disposition Header standardmäßig auf Form-Data eingestellt ist. Dann kann das erzeugte Objekt als Teil einer Multipart-Nachricht (die durch die Klasse QHttpMultiPart repräsentiert wird) verwendet werden.

Siehe auch QHttpPart, QHttpMultiPart, und QFormDataBuilder.

Dokumentation der Mitgliedsfunktionen

[noexcept default] QFormDataPartBuilder::QFormDataPartBuilder(const QFormDataPartBuilder &other)

Konstruiert 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): Die Änderung eines Teils wird auch den anderen Teil verändern.

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 default] QFormDataPartBuilder::QFormDataPartBuilder(QFormDataPartBuilder &&other)

Move-konstruiert eine QFormDataPartBuilder-Instanz, die auf das gleiche Objekt zeigt, auf das other gezeigt hat.

[noexcept default] QFormDataPartBuilder::~QFormDataPartBuilder()

Zerstört das Objekt QFormDataPartBuilder.

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

Setzt data als Body dieses MIME-Teils und, falls angegeben, fileName als Dateinamensparameter im Content Disposition Header.

Wenn mimeType nicht angegeben wird (leer ist), dann versucht QFormDataPartBuilder, den MIME-Typ von data mit QMimeDatabase automatisch zu erkennen.

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

Für große Datenmengen (z. B. ein Bild) ist setBodyDevice() vorzuziehen, das die Daten nicht intern kopiert.

Siehe auch setBodyDevice().

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

Setzt body als Body-Device dieses Teils und fileName als Parameter für den Dateinamen in der Kopfzeile der Inhaltsdisposition.

Wenn mimeType nicht angegeben wird (leer ist), dann versucht QFormDataPartBuilder, den Mime-Type von body mit QMimeDatabase automatisch zu erkennen.

Ein nachfolgender Aufruf von setBody() verwirft das Body-Device und es werden stattdessen die von setBody() eingestellten Daten verwendet.

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

body muss offen und lesbar sein. QFormDataPartBuilder übernimmt nicht das Eigentum an body, d.h. das Gerät muss geschlossen und ggf. zerstört werden.

Hinweis: Wenn body sequentiell ist (z. B. Sockets, aber nicht Dateien), sollte QNetworkAccessManager::post() aufgerufen werden, nachdem body finished() ausgegeben hat.

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

QFormDataPartBuilder QFormDataPartBuilder::setHeaders(const QHttpHeaders &headers)

Setzt die in headers angegebenen Kopfzeilen.

Hinweis: Die Kopfzeilen "content-type" und "content-disposition", sofern sie in headers angegeben sind, werden durch die Klasse überschrieben.

[noexcept default] QFormDataPartBuilder &QFormDataPartBuilder::operator=(QFormDataPartBuilder &&other)

Verschieben - weist other dieser QFormDataPartBuilder Instanz zu.

[noexcept default] QFormDataPartBuilder &QFormDataPartBuilder::operator=(const QFormDataPartBuilder &other)

Weist other an QFormDataPartBuilder zu und gibt einen Verweis auf dieses QFormDataPartBuilder zurück. 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): Die Änderung eines Teils wird auch den anderen Teil verändern.

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
}

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