主要内容

HTTP数据类型转换

MATLAB®HTTP接口自动将HTTP消息中使用的数据类型转换为MATLAB类型。

在请求消息中转换数据

当发送带有有效载荷的消息时,将您的MATLAB数据分配给数据属性在一个MessageBody对象,然后将其作为身体属性在一个RequestMessage对象。MATLAB数据的类型取决于消息的HTTP内容类型。如果不指定内容类型,则MATLAB假定内容类型值,如内容类型未指定

这个表格展示了MATLAB如何转换数据根据您在Content-Type报头字段中指定的类型/子类型属性和字符集属性,向请求消息中的有效负载发送。星号字符()表示任何亚型。

内容类型

matlab键入MessageBody.Data.财产

应用/ JSON.

数据转换为Unicode®价值使用jsonencode函数。马铃薯采用了Unicode2native.将值转换为的功能uint8.,基于Content-Type标题字段中的Charset属性。

如果您已经有JSON编码的文本,则将文本分配给有效载荷财产而不是数据财产。MATLAB将值转换为uint8.使用charset属性。

如果未指定charset属性,则默认的列字符值是utf - 8

文本/ *对于任何子类型CSV要么xml

如果数据是字符或字符串数​​组或字符向量的单元格数组,MATLAB重新成像并按行连接到文本以形成向量。

如果数据还有其他类型的MATLAB转换吗数据使用细绳函数。结果字符串被转换为uint8.基于字符集。

如果没有指定字符集,则默认值取决于子类型。对于以下子类型,默认值是utf - 8

  • json

  • jtml

  • javascript.

  • CSS.

  • 日历

对于所有其他子类型,MATLAB确定字符集。如果所有字符都在ASCII范围内,则字符集为美国 - ascii..否则,Charset是utf - 8

请注意

服务器可能无法正确解释编码的文本类型utf - 8没有一个明确的utf - 8字符集。为了获得最佳结果,请明确指定utf - 8如果数据包含非ascii字符。

图像/ *

数据必须以可接受的形式是图像数据IMWRITE.函数。转换数据uint8.取决于子类型。有关受支持的类型和控制转换的信息,请参见金宝app金宝app支持的图像数据子类型

要控制图像数据的转换或根据子类型覆盖转换类型,请指定其他参数IMWRITE.使用单元格数组。如果指定图像格式参数(fmt),然后它覆盖了默认转换。

例如,以下代码转换imageData为压缩质量为50的JPEG,并将数据发送到指定的url将Content-Type设置为“图像/ jpeg”

身体= MessageBody ({imageData,'jpg''质量', 50});要求= RequestMessage ('放'ContentTypeField ('图像/ jpeg'),身体);resp = req.send(URL);
  • 应用程序/ XML

  • text / xml

如果数据XML DOM是Java的形式吗®org.w3c.dom.Documentobject, MATLAB converts it using thexmlwrite函数。

如果数据是一个字符串或字符向量,matlab将它转换为uint8.使用指定的字符集。如果不指定,默认字符集值为utf - 8

Application / X-WWW-Form-Urlencoded

如果数据是向量matlab.net.queryparameter.对象,然后MATLAB将其转换为URL编码的字符串。如果它是字符串或字符向量,则它保持不变。

音频/ *

数据音频数据必须以可接受的形式audiowrite函数。创建包含音频数据的M-by-N矩阵的单元数组和Hz中的采样率。您可以指定其他参数audiowrite通过向单元格数组添加名称值对参数。

MATLAB支金宝app持以下音频类型:

  • 音频/ x-wav

  • 音频/波

  • 音频/ mp4.

  • 音频/ vnd.wav

  • 应用程序/ ogg.

  • 音频/爆屑

  • 应用程序/ csv

  • 文字/ CSV

  • 应用程序/ vnd.openxmlFormats-
    officedocument.spreadsheetml.sheet

  • Application / VND.ms-Excel

数据必须是一个表格的形式适合writetable函数。

CSV亚型,MATLAB将数据使用指定的Charset逗号分隔文本。默认的字符集是美国 - ascii.

对于其他类型,MATLAB转换数据超越®电子表格数据。

指定其他名称值对参数writetable,创建包含的单元格数组数据还有其他的参数。如果你指定“文件类型”参数时,该类型必须与指定的子类型一致。

内容类型未指定

如果未在请求消息中指定Content-Type字段,则MATLAB基于类型的类型分配类型,子类型和Charset数据财产。这种假设的行为可能不会产生您想要的Content-Type,或者可能无法确定类型,因此为了获得最佳结果,请指定Content-Type。下表描述了假设的基于的Content-Type数据.可能会处理未列出的类型,但未列出类型的行为不能保证在未来的版本中保持不变。

MessageBody.Data.财产种类
内容类型未指定

产生的内容类型

细绳
字符阵列
字符向量的单元格阵列

文字/平原

表格

文字/ CSV

细胞矢量,其第一元素是表

文字/ CSV- 如果文件类型CSV,则向量中有一个名称、值对和值“文件类型”、“csv”或者没有这样的一对。

应用程序/ vnd.openxmlFormats-OfficeDocument.sproadsheetml.sheet- 如果文件类型电子表格

org.w3c.dom.Document 应用程序/ XML
uint8.向量

发送一个uint8.向量无需转换并忽略内容类型标题字段,设置有效载荷财产而不是数据

要发送不进行转换的基于字符的数据,请使用Unicode2native.函数。此函数使用charset属性进行转换数据到一个uint8.向量。

如果类型不是表中列出的类型,则MATLAB确定它是以下基于字符的类型之一:

  • 文本/ *

  • 任何具有字符集的类型

  • javascript应用程序/ *

  • 应用程序/ vnd.wolfram.mathematica.package

MATLAB将这些类型转换为字符串,如果指定的话,或者美国 - ascii.文字/平原,UTF-8用于应用类型,以及其他类型的默认MATLAB编码。

在响应消息中转换数据

当接收到带有有效负载的消息时,MATLAB将传入的字节流(MessageBody.Data.属性)到适当的matlab类型。

下表是MATLAB在响应消息中识别的内容类型的列表,基于所接收的内容类型字段中的类型/子类型属性和Charset属性。MATLAB仅在此时转换数据HTTPOptions。ConvertResponse属性是真的,这是默认值。在表中,星号字符()表示任何字符。

响应消息内容类型 matlab键入MessageBody.Data.财产
应用/ JSON.

数据基于Charset转换为字符串,然后使用该字符串使用jsondecode函数。

图像/ *

数据转换为图像使用Imread.使用指定的子类型作为格式,使用默认参数。如果Imread.返回多个值,然后数据是单元格数组。

对于支持的图像数金宝app据类型,请参阅金宝app支持的图像数据子类型.如果子类型不在此列表中,则将子类型传递给IMWRITE.作为格式,可能会或可能不支持。金宝app

音频/ *

数据使用audioread函数转换为两个值的单元阵列、音频数据的m × n矩阵和采样率(Hz)。子类型决定所使用的格式audioread.支持的类金宝app型有:

  • 音频/波

  • 音频/ x-wav

  • 音频/ vnd.wav

  • 音频/ mp4.

  • 音频/爆屑

应用程序/ ogg.不被转换,因为ogg数据不一定只包含音频。

文字/ CSV
文本/逗号分隔值
应用程序/ csv
应用/逗号分隔值

数据使用转换为表格readtable,假设“文件类型”CSV和charset,如果指定,或MATLAB默认编码。

应用程序/ *电子表格*

数据使用转换为表格readtable,“文件类型”假定是“表格”

text / xml
应用程序/ XML

如果Java可用,数据使用java org.w3c.dom.document转换为java org.w3c.documentXMLREAD.函数。

如果Java不可用,数据是加工过的文字/平原与之utf - 8字符集。

如果类型不是表中列出的类型,则MATLAB确定它是以下基于字符的类型之一:

  • 文本/ *

  • 任何具有字符集的类型

  • javascript应用程序/ *

  • 应用程序/ vnd.wolfram.mathematica.package

MATLAB将这些类型转换为字符串,如果指定的话,或者美国 - ascii.文字/平原,UTF-8用于应用类型,以及其他类型的默认MATLAB编码。

如果MATLAB不支持类型,或者如果是金宝appHTTPOptions。ConvertResponse属性设置为,那么:

  • 如果类型是基于字符的,则数据包含转换为字符串的有效负载。

  • 否则,数据包含原始uint8.向量。

如果尝试转换传入数据但失败(例如,“图像/ jpeg”数据不是有效的JPEG数据),则历史财产的textbox抛出的RequestMessage.send.send.方法包含ResponseMessage与之有效载荷物业设为uint8.有效负载,如果类型是基于字符的,则数据设置为转换为字符串的有效负载。

金宝app支持的图像数据子类型

控件支持以下子类型金宝appIMWRITE.用作指定格式。例如,子类型的格式参数骨形态发生蛋白'bmp'.的Imread.功能将带有指定子类型的数据转换为格式。

亚型

所使用的格式
IMWRITE.Imread.

骨形态发生蛋白

'bmp'

gif

“gif”

jpeg

“jpeg”

JP2.

“jp2”

jpx

“jpx”

PNG.

“png”

TIFF

“饮”

X-HDF.

“hdf”

x-portable-bitmap

“pbm”

x-pcx

'pcx'

x-portable-graymap

“pgm”

x-portable-anymap

'pnm'

X-PORTABLE-PIXMAP

'ppm'

x-cmu-raster

'ras'

x-xwd

'xwd'

另请参阅

|||||||||||||