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

Пакет: matlab.net.http

Тело сообщения HTTP

Описание

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

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

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

Изолированный

tRUE

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

Создание

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

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

Свойства

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

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

  • Вектор uint8Data, не преобразованный.

  • символьный массив или скалярная строка — Data, преобразованный на основе типа носителя и его набора символов, приписывают в заголовке Типа контента.

  • массив структур — 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. Преобразование данных происходит, когда вы вызываете send RequestMessage или методы complete. Преобразование зависит от Типа контента, который вы задаете в сообщении и типе Data. Если вы не задаете Тип контента, то send и методы complete пытаются вывести тип из данных и добавить соответствующий ContentTypeField к сообщению запроса.

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

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

Атрибуты:

GetAccess

общественность

SetAccess

общественность

Зависимый

tRUE

Типы данных:

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

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

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

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

Атрибуты:

GetAccess

общественность

SetAccess

общественность

Переходный процесс

tRUE

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

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

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

Атрибуты:

GetAccess

общественность

SetAccess

общественность

Переходный процесс

tRUE

Типы данных: строка

Необработанные байты отправляются в сообщении, заданном как вектор 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

общественность

SetAccess

общественность

Зависимый

tRUE

Методы

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

Введенный в R2017b

Была ли эта тема полезной?