Интерфейс 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' |
ContentTypeField
| HTTPException
| HTTPOptions
| MessageBody
| RequestMessage
| ResponseMessage
| audioread
| audiowrite
| imread
| imwrite
| jsondecode
| jsonencode
| xmlread
| xmlwrite