QHttpMultiPart Class
QHttpMultiPart クラスは、HTTP で送信される MIME マルチパートメッセージに似ています。詳細...
ヘッダー | #include <QHttpMultiPart> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS Network) target_link_libraries(mytarget PRIVATE Qt6::Network) |
qmake: | QT += network |
継承: | QObject |
- 継承メンバを含む全メンバのリスト
- QHttpMultiPart はNetwork Programming API に含まれています。
パブリック型
enum | ContentType { MixedType, RelatedType, FormDataType, AlternativeType } |
パブリック関数
QHttpMultiPart(QObject *parent = nullptr) | |
QHttpMultiPart(QHttpMultiPart::ContentType contentType, QObject *parent = nullptr) | |
virtual | ~QHttpMultiPart() |
void | append(const QHttpPart &httpPart) |
QByteArray | boundary() const |
void | setBoundary(const QByteArray &boundary) |
void | setContentType(QHttpMultiPart::ContentType contentType) |
詳細な説明
QHttpMultiPart は、RFC 2046 で説明されている MIME マルチパートメッセージに似ています。マルチパートメッセージは、一意の境界で区切られた任意の数のボディパート (QHttpPart を参照) から構成されます。QHttpMultiPart の境界は、"boundary_.oOo._" という文字列の後にランダムな文字が続くことで構成され、パート自身の内部で発生しないように十分な一意性を提供します。必要であれば、setBoundary ()を使って境界を設定することもできる。
例として、以下のコード・スニペットを考えてみましょう。これは、テキスト・パートに続いてイメージ・パートを含むマルチパート・メッセージを構築するものです:
QHttpMultiPart *multiPart = new QHttpMultiPart(QHttpMultiPart::FormDataType); QHttpPart textPart; textPart.setHeader(QNetworkRequest::ContentDispositionHeader, QVariant("form-data; name=\"text\"")); textPart.setBody("my text"); QHttpPart imagePart; imagePart.setHeader(QNetworkRequest::ContentTypeHeader, QVariant("image/jpeg")); imagePart.setHeader(QNetworkRequest::ContentDispositionHeader, QVariant("form-data; name=\"image\"")); QFile *file = new QFile("image.jpg"); file->open(QIODevice::ReadOnly); imagePart.setBodyDevice(file); file->setParent(multiPart); // we cannot delete the file now, so delete it with the multiPart multiPart->append(textPart); multiPart->append(imagePart); QUrl url("http://my.server.tld"); QNetworkRequest request(url); QNetworkAccessManager manager; QNetworkReply *reply = manager.post(request, multiPart); multiPart->setParent(reply); // delete the multiPart with the reply // here connect signals etc.
QHttpPart およびQNetworkAccessManager::post()も参照 。
メンバ型ドキュメント
enum QHttpMultiPart::ContentType
RFC 2046などで記述されている、マルチパートのサブタイプの既知のコンテントタイプのリスト。
定数 | 値 | 説明 |
---|---|---|
QHttpMultiPart::MixedType | 0 | は "multipart/mixed "サブタイプに対応し、RFC 2046で記述されているように、ボディ部分が互いに独立していることを意味する。 |
QHttpMultiPart::RelatedType | 1 | は "multipart/related "サブタイプに対応し、RFC 2387で述べられているように、ボディ部分が互いに関連していることを意味する。 |
QHttpMultiPart::FormDataType | 2 | は "multipart/form-data "サブタイプに対応し、RFC 2388で述べられているように、ボディ部分がフォーム要素を含むことを意味する。 |
QHttpMultiPart::AlternativeType | 3 | は "multipart/alternative "サブタイプに対応し、RFC 2046で述べられているように、ボディパーツが同じ情報の代替表現であることを意味する。 |
setContentType()も参照 。
メンバ関数のドキュメント
[explicit]
QHttpMultiPart::QHttpMultiPart(QObject *parent = nullptr)
コンテンツタイプMixedType を持つ QHttpMultiPart を構築し、親オブジェクトとしてparent を設定します。
QHttpMultiPart::ContentTypeも参照してください 。
[explicit]
QHttpMultiPart::QHttpMultiPart(QHttpMultiPart::ContentType contentType, QObject *parent = nullptr)
コンテンツ・タイプcontentType を持つ QHttpMultiPart を構築し、 parent を親オブジェクトとして設定します。
QHttpMultiPart::ContentTypeも参照してください 。
[virtual noexcept]
QHttpMultiPart::~QHttpMultiPart()
マルチパートを破壊する。
void QHttpMultiPart::append(const QHttpPart &httpPart)
このマルチパートにhttpPart を追加する。
QByteArray QHttpMultiPart::boundary() const
は境界を返す。
setBoundary()も参照のこと 。
void QHttpMultiPart::setBoundary(const QByteArray &boundary)
境界をboundary に設定する。
通常、境界を自分で生成する必要はありません。境界は、"boundary_.oOo._"という文字列の後にランダムな文字が続くことで開始され、パーツ自身の内部で発生しないように十分な一意性を提供します。
boundary()も参照 。
void QHttpMultiPart::setContentType(QHttpMultiPart::ContentType contentType)
コンテントタイプをcontentType に設定する。このコンテントタイプは、QNetworkAccessManager::post()を介してマルチパートメッセージを送信するときに、HTTPヘッダーセクション で使用される。QHttpMultiPart::ContentType に含まれないマルチパートのサブタイプを使いたい場合は、QNetworkRequest に "Content-Type "ヘッダーフィールドを手で追加し、投稿用のマルチパート メッセージとともにこのリクエストを使うことができる。
QHttpMultiPart::ContentType とQNetworkAccessManager::post()も参照の こと。
© 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.