matlab.net.http.MessageBody class

Пакет: matlab.net.http

Описание

A MessageBody объект содержит тело HTTP-сообщения. В сообщении запроса установите Body свойство к вашим данным или к MessageBody объект, содержащий ваши данные. В ответном сообщении этот объект содержит полученные данные.

Данные сообщения представлены двумя свойствами. The Payload свойство содержит необработанные байты, отправленные или полученные из сети. The Data свойство содержит Payload как MATLAB® тип. Часто задается только одно из этих двух свойств.

Атрибуты класса

Sealed
true

Для получения информации об атрибутах класса см. раздел «Атрибуты класса».

Создание

A MessageBody объект содержит тело HTTP-сообщения. В сообщении запроса установите Body свойство к вашим данным или к MessageBody объект, содержащий ваши данные. В ответном сообщении этот объект содержит полученные данные.

Данные сообщения представлены двумя свойствами. The Payload свойство содержит необработанные байты, отправленные или полученные из сети. The Data свойство содержит Payload как тип MATLAB. Часто задается только одно из этих двух свойств.

Свойства

расширить все

Данные сообщения, заданные как один из следующих типов данных MATLAB. Для получения дополнительной информации о преобразовании смотрите HTTP Data Type Conversion.

  • uint8 вектор - Data не преобразован.

  • символьный массив или скалярная строка - Data преобразован на основе типа носителя и его атрибута charset в заголовке Content-Type.

  • массив структур - Data преобразован в или из строки JSON с помощью webread и webwrite.

  • изображение - Data преобразовано в или из изображения с помощью imread и imwrite.

  • XML DOM - Data преобразовано в или из строки с помощью xmlread и xmlwrite.

  • аудио данных - Data преобразовано с помощью audioread и audiowrite.

  • таблица - Data преобразовано с помощью xmlread и xmlwrite.

  • Другой тип массива или массива ячеек - Data преобразован в или из JSON с помощью jsonencode и jsondecode.

В сообщении запроса Data свойство - это данные MATLAB перед преобразованием в uint8 полезная нагрузка. Преобразование данных происходит при вызове RequestMessage send или complete методы. Преобразование зависит от типа содержимого, заданного в сообщении, и типа Data. Если вы не задаете Content-Type, то send и complete методы пытаются вывести тип из данных и добавить соответствующий ContentTypeField к сообщению запроса.

В ответном сообщении Data представляет uint8 полезная нагрузка преобразована в тип MATLAB на основе типа содержимого, заданного сервером. Если преобразование не удается, то Data остается пустым, и необработанные данные появляются в Payload свойство.

Чтобы подавить автоматическое преобразование отклика Payload, установите HTTPOptions.ConvertResponse свойство к false. В этом случае Data содержит строку для символьных данных или uint8 вектор байтов.

Атрибуты:

GetAccess
public
SetAccess
public
Dependent
true

Content-Type of the Data свойство, заданное как доступное только для чтения matlab.net.http.MediaType объект. Это свойство определяет, как содержимое Data свойство было преобразовано в полезную нагрузку или из нее. Если тип содержимого имеет MediaType с атрибутом charset, тогда charset определяет кодировку.

Обычно это свойство имеет те же значения, что и результат вызова convert в поле Content-Type в сообщении, содержащем эту MessageBody.

Вы не устанавливаете ContentType в сообщении запроса. Когда вы создаете MessageBody объект, это свойство пустое. Когда вы копируете MessageBody в сообщение запроса, ContentType устанавливается в значение ContentTypeField в сообщении, если он есть. The RequestMessage send и complete набор методов ContentType на основе типа Data и значение ContentTypeField в сообщении запроса.

В ответном сообщении ContentType основан на ContentTypeField сообщения.

Атрибуты:

GetAccess
public
SetAccess
public
Transient
true

Это свойство установлено, чтобы указать, что Payload свойство ResponseMessage закодирован. Когда ContentCoding установлен, обработка не была выполнена на полезной нагрузке и Data свойство пустое.

Если MATLAB получает сообщение, полезная нагрузка которого кодируется с помощью поддерживаемого им алгоритма сжатия, такого как gzip или deflate, он автоматически декодирует эту полезную нагрузку перед попыткой любых других преобразований. Если декодирование прошло успешно, оно опционально сохраняет декодированную полезную нагрузку в Payload и преобразованную полезную нагрузку (если она имеется) в Data. В этом случае это свойство пустое, чтобы указать, что Payload не закодирован.

Если полезная нагрузка была закодирована, но декодирование не было успешным, или вы подавили декодирование, установив HTTPOptions.DecodePayload свойство к false, затем необработанная все еще закодированная полезная нагрузка возвращается в Payload, Data остается пустым, и ContentCoding задается вектор строк, представляющих значение поля заголовка Content-Encoding в ответном сообщении. В этом случае можно сохранить Payload как есть (для примера запишите его в файл), или обработайте его в соответствии с алгоритмами сжатия, указанными в ContentCoding. Для примера, если значение gzip, можно записать данные в файл и использовать gunzip команда для обработки данных.

Атрибуты:

GetAccess
public
SetAccess
public
Transient
true

Типы данных: string

Необработанные байты, отправленные в сообщении в виде uint8 вектор, скалярная строка или вектор символов. Для удобства в сообщении запроса можно задать Payload в скалярную строку или вектор символов. MATLAB преобразует значение в uint8 вектор. В ответном сообщении Payload всегда является uint8 вектор.

В сообщении запроса:

  • Скалярная строка или вектор символов преобразуется с помощью набора графиков, заданного в или подразумеваемого ContentType свойство, если таковое имеется, или UTF-8 кодирование, если оно не задано. Чтобы использовать другую кодировку, закодируйте ее самостоятельно, например, используя unicode2native и присвойте получившееся uint8 вектор к Payload.

  • Если вы не хотите выходного преобразования в массиве байтов, задайте Payload вместо Data свойство. Если вы задаете Data вместо этого затем Payload заполняется байтами, которые были отправлены, если вы задаете возвращаемый аргумент запроса или истории для RequestMessage.send, в возврат значении RequestMessage.complete, или в ResponseMessage если вы устанавливаете HTTPOptions.SavePayload свойство.

  • Когда вы задаете Payload, Data очищается. Если вы отправляете сообщение, где оба Data и Payload устанавливаются, затем Payload отправляется и Data игнорируется. Только ответные сообщения и сообщения запроса, возвращенные send или complete методы могут иметь оба свойства, установленные одновременно.

В ответном сообщении Payload - необработанные байты, полученные в следующих случаях:

  • Вы задаете возвращаемый аргумент истории в RequestMessage.send способ.

  • Вы устанавливаете HTTPOptions.SavePayload свойство к true.

  • Payload всегда задается для сообщений, появляющихся в LogRecord

  • Если не удалось преобразовать полезную нагрузку в данные MATLAB. Для получения информации проверьте HTTPException.History свойство.

Атрибуты:

GetAccess
public
SetAccess
public
Dependent
true

Методы

расширить все

Введенный в R2016b