matlab.net.http.MessageBody class

Пакет: matlab.net.http

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

Описание

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

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

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

Sealed
true

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

Создание

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

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

Свойства

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

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

  • uint8 вектор — Data не преобразованный.

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

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

  • данные изображения преобразованный в или от изображения с помощью imread и imwrite.

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

  • аудиоданные — Data конвертированное использование audioread и audiowrite.

  • табличные данные конвертированное использование xmlread и xmlwrite.

  • Другой тип массива или массива ячеек — Data преобразованный в или от 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данные оставлен пустым, и ContentCoding установлен в вектор строк, представляющих значение Довольного Кодирования полей заголовков в сообщении ответа. В этом случае можно сохранить 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 и Payload установлены, затем Payload отправляется и Data проигнорирован. Только сообщения ответа и сообщения запроса, возвращенные send или complete методы могут иметь оба набора свойств одновременно.

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

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

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

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

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

Атрибуты:

GetAccess
public
SetAccess
public
Dependent
true

Методы

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

Введенный в R2017b