MATLAB® HTTP-интерфейс автоматически преобразует типы данных, используемые в сообщениях HTTP, в типы MATLAB и из них.
При отправке сообщения с полезной нагрузкой присвойте свои данные MATLAB Data
свойство в MessageBody
объект, затем отправить его как Body
свойство в RequestMessage
объект. Тип данных MATLAB зависит от типа содержимого HTTP сообщения. Если вы не задаете тип содержимого, то MATLAB принимает значения типа содержимого, как описано в Не заданный тип содержимого.
В этой таблице показано, как MATLAB преобразует Data
к полезной нагрузке в сообщении запроса на основе свойств type/subtype и атрибута charset, которые вы задаете в поле заголовка Content-Type. Символ звездочки (*
) означает любой подтип.
Тип содержимого | Тип MATLAB в |
---|---|
application/json |
Если у вас уже есть текст с кодировкой JSON, присвойте текст Если атрибут charset не задан, то значение charset по умолчанию является |
| Если Если Если вы не задали набор графиков, значение по умолчанию зависит от подтипа. Для следующих подтипов по умолчанию используется
Для всех других подтипов 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/*
любой тип с charset
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
свойство true, которое является свойством по умолчанию. В таблице символ звездочки (*
) означает любые символы.
Тип содержимого ответного сообщения | Тип MATLAB в MessageBody.Data Свойство |
---|---|
application/json |
|
image/* |
Для поддерживаемых типов изображений смотрите Поддерживаемые подтипы данных. Если подтипа нет в этом списке, то подтип передается |
audio/* |
|
|
|
application/*spreadsheet* |
|
text/xml application/xml | Если Java доступен, Если Java недоступна, |
Если тип не является одним из перечисленных в таблице, MATLAB определяет, является ли он одним из следующих символьных типов:
text/*
любой тип с charset
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
payload и, если тип основан на символах, то 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