Spec-Zone.ru › Qt 5.13

Класс QHttpMultiPart

Класс QHttpMultiPart представляет собой сообщение MIME multipart, предназначенное для отправки по протоколу HTTP. Подробнее...

Заголовок: #include <QHttpMultiPart>
qmake: QT += network
С тех пор: Qt 4.8
Наследует: QObject

Этот класс был представлен в Qt 4.8.

  • Список всех членов, включая унаследованные

Открытые типы

Перечисление ContentType { СмешанныйТип, СвязанныйТип, ТипДанныхФормы, АльтернативныйТип }

Открытые функции

QHttpMultiPart(QHttpMultiPart::ContentType contentType, QObject *parent = nullptr)
QHttpMultiPart(QObject *parent = nullptr)
виртуальный ~QHttpMultiPart()
void append(const QHttpPart &httpPart)
QByteArray boundary() const
void setBoundary(const QByteArray &boundary)
void setContentType(QHttpMultiPart::ContentType contentType)

Подробное описание

Класс QHttpMultiPart представляет собой сообщение MIME multipart, как описано в RFC 2046, которое должно отправляться по протоколу HTTP. Сообщение multipart состоит из произвольного количества частей тела (см. QHttpPart), разделенных уникальной границей. Граница QHttpMultiPart формируется со строкой "boundary_.oOo._", за которой следуют случайные символы, и обеспечивает достаточную уникальность, чтобы она не встречалась внутри самих частей. При необходимости граница может быть задана с помощью setBoundary().

В качестве примера рассмотрим следующий фрагмент кода, который создает сообщение multipart, содержащее текстовую часть, за которой следует изображение:

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().

Документация по типам членов

Перечисление QHttpMultiPart::ContentType

Список известных типов содержимого для подтипов multipart, как описано в 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().

Документация по документации функций

QHttpMultiPart::QHttpMultiPart(QHttpMultiPart::ContentType contentType, QObject *parent = nullptr)

Конструирует QHttpMultiPart с типом содержимого contentType и устанавливает parent в качестве родительского объекта.

См. также QHttpMultiPart::ContentType.

QHttpMultiPart::QHttpMultiPart(QObject *parent = nullptr)

Конструирует QHttpMultiPart с типом содержимого СмешанныйТип и устанавливает parent в качестве родительского объекта.

См. также QHttpMultiPart::ContentType.

[virtual] QHttpMultiPart::~QHttpMultiPart()

Уничтожает multipart.

void QHttpMultiPart::append(const QHttpPart &httpPart)

Добавляет httpPart к этому multipart.

QByteArray QHttpMultiPart::boundary() const

Возвращает границу.

См. также setBoundary().

void QHttpMultiPart::setBoundary(const QByteArray &boundary)

Устанавливает границу в boundary.

Обычно вам не нужно генерировать границу самостоятельно; при создании граница инициализируется строкой "boundary_.oOo._", за которой следуют случайные символы, и обеспечивает достаточную уникальность, чтобы она не встречалась внутри самих частей.

См. также boundary().

void QHttpMultiPart::setContentType(QHttpMultiPart::ContentType contentType)

Устанавливает тип содержимого в contentType. Тип содержимого будет использоваться в разделе заголовка HTTP при отправке сообщения multipart с помощью QNetworkAccessManager::post(). В случае, если вы хотите использовать подтип multipart, который не содержится в QHttpMultiPart::ContentType, вы можете добавить поле заголовка "Content-Type" в QNetworkRequest вручную, а затем использовать этот запрос вместе с сообщением multipart для отправки.

См. также QHttpMultiPart::ContentType и QNetworkAccessManager::post().

© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-5.13/qhttpmultipart.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API