QFormDataPartBuilder Class

QFormDataPartBuilder クラスは、QHttpPart オブジェクトの構築を簡素化するための便利なクラスです。詳細...

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

パブリック関数

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)

詳細説明

QFormDataPartBuilder クラスは、デフォルトで content disposition ヘッダが form-data に設定されたQHttpPart オブジェクトを生成するために使用できます。その後、生成されたオブジェクトをマルチパート・メッセージの一部として使用することができます(これはQHttpMultiPart クラスで表されます)。

QHttpPartQHttpMultiPartQFormDataBuilderも参照

メンバ関数 ドキュメント

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

other のコピーを構築する。このオブジェクトは、関連するQFormDataBuilder が破棄されていない限り有効である。

コピーのデータは共有されます(シャロー・コピー):一方の部分を変更すると、もう一方の部分も変更されます。

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-QFormDataPartBuilderインスタンスを構築し、other が指していたのと同じオブジェクトを指すようにします。

[noexcept default] QFormDataPartBuilder::~QFormDataPartBuilder()

QFormDataPartBuilder オブジェクトを破棄します。

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

この MIME パートのボディとしてdata を設定し、与えられた場合は、content disposition ヘッダーのファイル名パラメーターとしてfileName を設定します。

mimeType が与えられない(空である)場合、QFormDataPartBuilderQMimeDatabase を使用してdata の MIMEタイプを自動検出しようとする。

その後にsetBodyDevice()を呼 ぶと、ボディは破棄され、代わりにデバイスが使用される。

大容量のデータ(画像など)については、setBodyDevice() を使用するのが望ましい。

setBodyDevice()も参照

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

このパートのボディデバイスとしてbody を設定し、content disposition ヘッダーのファイル名パラメーターとしてfileName を設定する。

mimeType が与えられない(空である)場合、QFormDataPartBuilder は、QMimeDatabase を使用してbody のmime-typeを自動検出しようとする。

その後にsetBody()を呼 ぶと、ボディデバイスは破棄され、代わりにsetBody()で設定された データが使用される。

setBodyこのメソッドを使用する場合、コンテンツはコピーされず、デバイ スから直接読み込まれるからである。

body QFormDataPartBuilder は の所有権を持たない。つまり、必要に応じてデバイスを閉じ、破棄する必要がある。body

注意: body がシーケンシャルな場合(ソケットなど、ファイルではない)、body が finished() を発行した後にQNetworkAccessManager::post() を呼び出すべきである。

setBody() およびQHttpPart::setBodyDevice()も参照のこと

QFormDataPartBuilder QFormDataPartBuilder::setHeaders(const QHttpHeaders &headers)

headers で指定されたヘッダを設定する。

注意: "content-type" および "content-disposition" ヘッダがheaders で指定されている場合は、このクラスによって上書きされます。

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

Move-other をこのQFormDataPartBuilder インスタンスに割り当てる。

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

otherQFormDataPartBuilder に割り当て、このQFormDataPartBuilder への参照を返す。このオブジェクトは、関連するQFormDataBuilder が破棄されていない限り有効です。

コピーのデータは共有されます(シャローコピー):片方を変更するともう片方も変更されます。

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
}

本書に含まれる文書の著作権は、それぞれの所有者に帰属します。 本書で提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。