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