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 はNetwork Programming APIおよびImplicitly Shared Classes の一部です。
パブリック関数
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 クラスで表されます)。
QHttpPart 、QHttpMultiPart 、QFormDataBuilderも参照 。
メンバ関数 ドキュメント
[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 が与えられない(空である)場合、QFormDataPartBuilder はQMimeDatabase を使用して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)
other をQFormDataPartBuilder に割り当て、この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.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。