QFormDataPartBuilder Class
QFormDataPartBuilder 类是一个方便的类,用于简化QHttpPart 对象的构造。更多
Header: | #include <QFormDataPartBuilder> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS Network) target_link_libraries(mytarget PRIVATE Qt6::Network) |
qmake: | QT += network |
自 | Qt 6.8 |
- 所有成员的列表,包括继承成员
- QFormDataPartBuilder 属于网络编程 API和隐式共享类。
公共函数
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 类可用于创建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)
移动-构建一个 QFormDataPartBuilder 实例,使其指向other 所指向的同一对象。
[noexcept default]
QFormDataPartBuilder::~QFormDataPartBuilder()
销毁QFormDataPartBuilder 对象。
QFormDataPartBuilder QFormDataPartBuilder::setBody(QByteArrayView data, QAnyStringView fileName = {}, QAnyStringView mimeType = {})
将data 设置为该 MIME 部分的主体,如果给定,则将fileName 设置为内容处置标头中的文件名参数。
如果mimeType 未给出(为空),则QFormDataPartBuilder 会尝试使用QMimeDatabase 自动检测data 的 MIME 类型。
随后对setBodyDevice() 的调用将丢弃正文,而使用设备。
对于大量数据(如图像),最好使用setBodyDevice(),因为它不会在内部复制数据。
另请参阅 setBodyDevice()。
QFormDataPartBuilder QFormDataPartBuilder::setBodyDevice(QIODevice *body, QAnyStringView fileName = {}, QAnyStringView mimeType = {})
将body 设置为该部分的主体设备,将fileName 设置为内容处置标头中的文件名参数。
如果mimeType 未给出(为空),则QFormDataPartBuilder 会尝试使用QMimeDatabase 自动检测body 的 mime 类型。
随后对setBody() 的调用将丢弃正文设备,取而代之的是setBody() 设置的数据。
对于大量数据,应首选此方法而非setBody(),因为使用此方法时,内容不会被复制,而是直接从设备读取。
body QFormDataPartBuilder 不拥有 的所有权,也就是说,必要时必须关闭并销毁该设备。body
注意: 如果body 是连续的(例如套接字,但不是文件),则应在body 发出 finished() 之后调用QNetworkAccessManager::post()。
另请参阅 setBody() 和QHttpPart::setBodyDevice()。
QFormDataPartBuilder QFormDataPartBuilder::setHeaders(const QHttpHeaders &headers)
设置headers 中指定的标头。
注意: 如果headers 中指定了 "content-type "和 "content-disposition "标头,它们将被该类覆盖。
[noexcept default]
QFormDataPartBuilder &QFormDataPartBuilder::operator=(QFormDataPartBuilder &&other)
Move-assignsother 到此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 }
© 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.