exponenta event banner

matlab.net.http.MessageBody класс

Пакет: matlab.net.http

Описание

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

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

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

Sealed
true

Сведения об атрибутах класса см. в разделе Атрибуты класса.

Создание

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

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

Свойства

развернуть все

Данные сообщения, указанные как один из следующих типов данных MATLAB. Сведения о преобразовании см. в разделе Преобразование типов данных HTTP.

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

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

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

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

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

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

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

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

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

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

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

Атрибуты:

GetAccess
public
SetAccess
public
Dependent
true

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

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

Вы не устанавливаете ContentType в сообщении запроса. При создании MessageBody объект, это свойство пустое. При копировании MessageBody в сообщение запроса, ContentType устанавливается в значение ContentTypeField в сообщении, если оно есть. 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