Интерфейс MATLAB® HTTP автоматически преобразует типы данных, используемые в сообщениях HTTP к и от типов MATLAB.
При отправке сообщения с полезной нагрузкой присвойте данные MATLAB Data
свойство в MessageBody
объект, затем отправьте его как Body
свойство в RequestMessage
объект. Тип ваших данных MATLAB зависит от Типа контента HTTP сообщения. Если вы не задаете Тип контента, то MATLAB принимает значения Типа контента, как описано в Типе контента, Не Заданном.
Эта таблица показывает, как MATLAB преобразует Data
к полезной нагрузке в сообщении запроса на основе свойств типа/подтипа и атрибута набора символов, что вы задаете в поле заголовка Типа контента. Символ звездочки (*
) средние значения любой подтип.
ContentType | Тип MATLAB в |
---|---|
application/json |
Если вы уже JSON-закодировали текст, то присваиваете текст Если атрибут набора символов не задан, то значением набора символов по умолчанию является |
| Если Если Если вы не задавали набор символов, значение по умолчанию зависит от подтипа. Для следующих подтипов значением по умолчанию является
Для всех других подтипов MATLAB определяет набор символов. Если все символы находятся в области значений ASCII, то набором символов является Примечание Серверы не могут правильно интерпретировать типы текстов, закодированные как |
image/* |
Чтобы управлять преобразованием ваших данных изображения или заменить тип преобразования на основе подтипа, задайте дополнительные аргументы к Например, следующий код преобразует body = MessageBody({imageData,'jpg','Quality',50}); req = RequestMessage('put',ContentTypeField('image/jpeg'),body); resp = req.send(url); |
| Если Если |
| Если |
audio/* |
MATLAB поддерживает следующие аудио типы:
|
|
Для Для других типов MATLAB преобразует Задавать дополнительные аргументы пары "имя-значение" |
Если вы не задаете поле Content-Type в сообщении запроса, MATLAB присваивает тип, подтип и набор символов на основе типа Data
свойство. Это принятое поведение не может привести к Типу контента, который вы предназначили или можете не определить тип, таким образом, для лучших результатов, задайте Тип контента. Следующая таблица описывает принятый Тип контента на основе Data
. Типы, не перечисленные, могут быть обработаны, но поведение для не включенных в список типов, как гарантируют, не останется то же самое в будущих релизах.
| Получившийся тип контента |
---|---|
строка | text/plain |
таблица | text/csv |
вектор ячейки, первым элементом которого является таблица |
|
org.w3c.dom.Document | application/xml |
uint8 вектор | Отправить Чтобы отправить символьно-ориентированные данные без преобразования, используйте |
Если тип не является одним из перечисленных в таблице, то MATLAB определяет, является ли это одним из следующих символьно-ориентированных типов:
text/*
любой тип с набором символов
application/*javascript
application/vnd.wolfram.mathematica.package
MATLAB преобразует эти типы в строку, с помощью набора символов, если задано, или US-ASCII
для text/plain
, UTF-8 для типов приложения и кодирование MATLAB по умолчанию для других типов.
При получении сообщения с полезной нагрузкой MATLAB преобразует входящий поток байтов (MessageBody.Data
свойство) к соответствующему типу MATLAB.
Следующая таблица является списком Типов контента, которые MATLAB распознает в сообщении ответа, основывал свойства типа/подтипа и атрибут набора символов в полученном поле Content-Type. MATLAB преобразует данные только если HTTPOptions.ConvertResponse
свойство верно, который является значением по умолчанию. В таблице, символ звездочки (*
) средние значения любые символы.
Тип контента сообщения ответа | Тип MATLAB в MessageBody.Data Свойство |
---|---|
application/json |
|
image/* |
Для поддерживаемых типов данных изображения смотрите Поддерживаемые Подтипы Данных изображения. Если подтип не находится в этом списке, то подтип передается |
audio/* |
|
|
|
application/*spreadsheet* |
|
text/xml application/xml | Если Java доступен, Если Java не доступен, |
Если тип не является одним из перечисленных в таблице, то MATLAB определяет, является ли это одним из следующих символьно-ориентированных типов:
text/*
любой тип с набором символов
application/*javascript
application/vnd.wolfram.mathematica.package
MATLAB преобразует эти типы в строку, с помощью набора символов, если задано, или US-ASCII
для text/plain
, UTF-8 для типов приложения и кодирование MATLAB по умолчанию для других типов.
Если MATLAB не поддерживает тип, или если HTTPOptions.ConvertResponse
свойство установлено в false
то:
Если тип символьно-ориентирован, то Data
содержит полезную нагрузку, преобразованную в строку.
В противном случае, Data
содержит необработанный uint8
вектор.
Если преобразование входящих данных предпринято, но сбои (например, "image/jpeg"
данные не являются допустимыми данными о JPEG), затем History
свойство в HTTPException
выданный RequestMessage.send
метод содержит ResponseMessage
с Payload
набор свойств к uint8
полезная нагрузка и, если тип символьно-ориентирован, то Data
установлен в полезную нагрузку, преобразованную в строку.
Следующие подтипы поддерживаются imwrite
функционируйте как заданный формат. Например, аргумент формата для подтипа bmp
'bmp'
. imread
функция преобразует данные с заданным подтипом как формат.
Подтип | Формат, используемый |
---|---|
| 'bmp' |
| 'gif' |
| 'jpeg' |
| 'jp2' |
| 'jpx' |
| 'png' |
| 'tiff' |
| 'hdf' |
| 'pbm' |
| 'pcx' |
| 'pgm' |
| 'pnm' |
| 'ppm' |
| 'ras' |
| 'xwd' |
audioread
| audiowrite
| ContentTypeField
| HTTPException
| HTTPOptions
| imread
| imwrite
| jsondecode
| jsonencode
| MessageBody
| RequestMessage
| ResponseMessage
| xmlread
| xmlwrite