主要内容

HTTP数据类型转换

MATLAB®HTTP接口自动转换数据类型用于HTTP消息与MATLAB类型。

在请求消息转换数据

当发送消息有效负载,分配你的MATLAB数据数据属性在一个MessageBody对象,然后把它作为一个身体属性在一个RequestMessage对象。MATLAB数据的类型取决于HTTP消息的内容类型。如果你不指定一个内容类型,然后MATLAB假设内容类型值,所述内容类型未指定

此表显示了MATLAB的皈依者数据请求消息的有效负载基于类型/子类型属性和指定的字符集属性content - type报头字段。星号字符(*)是指任何子类型。

内容类型

MATLAB输入MessageBody.Data财产

application / json

数据转换为Unicode®使用价值jsonencode函数。MATLAB然后使用unicode2native函数将值转换为uint8根据字符集属性在content - type报头字段中。

如果你已经有json编码的文本,然后指定的文本有效载荷财产,而不是数据财产。MATLAB转换价值uint8使用字符集属性。

如果没有指定字符集属性,那么默认的字符集值utf - 8

文本/ *以外的任何子类型csvxml

如果数据是一个字符或字符串数组或单元阵列的特征向量,用MATLAB重塑和连接的文本行形成一个向量。

如果数据是任何其他类型,MATLAB转换数据使用字符串函数。结果被转换为字符串uint8基于字符集。

如果你不指定一个字符集,默认取决于亚型。对于下面的子类型,默认utf - 8:

  • json

  • jtml

  • javascript

  • css

  • 日历

对于所有其他亚型,MATLAB决定了字符集。如果所有中ASCII字符,那么字符集us - ascii。否则,字符集utf - 8

请注意

服务器可能不正确解读文本类型编码utf - 8没有一个明确的utf - 8字符集。为达到最佳效果,显式地指定utf - 8如果您的数据包含非ascii字符。

图像/ *

数据必须是图像数据的形式接受吗imwrite函数。转换数据uint8取决于亚型。为支持的类型和信息控制转换,明白了万博1manbetx万博1manbetx支持图像数据子类型

控制你的图像数据的转换或覆盖的类型转换基于子类型,指定额外的参数imwrite使用单元阵列。如果你指定一个图像格式参数(fmt),那么它将覆盖默认转换。

例如,下面的代码转换imageData在JPEG压缩质量50和发送数据到指定的url与内容类型设置为“图像/ 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

应用程序/ x-www-form-urlencoded

如果数据是一个向量的matlab.net.QueryParameter对象,然后用MATLAB将其转换为一个url编码的字符串。如果它是一个字符串或字符向量,它是不变的。

音频/ *

数据必须是音频数据的形式接受吗audiowrite函数。创建一个包含一个m×n的矩阵的音频数据的单元阵列和赫兹的采样率。您可以指定额外的参数audiowrite通过添加名称-值对细胞参数数组。

MATLAB支万博1manbetx持以下音频类型:

  • 音频/ x-wav

  • 音频/ wav

  • 音频/ mp4

  • 音频/ vnd.wav

  • 应用程序/ ogg

  • 音频/ flac

  • 应用程序/ csv

  • 文本/ csv

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

  • 应用程序/ vnd.ms-excel

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

csv亚型,MATLAB将数据用逗号分隔的文本使用指定的字符集。默认字符集us - ascii

对于其他类型,MATLAB的皈依者数据超越®电子表格数据。

指定额外的参数名称-值对writetable,创建一个包含细胞数组数据和额外的参数。如果你指定一个“文件类型”参数,类型必须符合您所指定的子类型。

内容类型未指定

如果你不指定一个请求消息中的内容类型字段,MATLAB分配类型、子类型和字符集的类型数据财产。这种假定行为可能不会导致预期的内容类型,或可能无法确定类型,所以,等待最好的结果,指定内容类型。下表描述了假设内容类型的基础上数据。未列出的类型可能会处理,但未上市的行为类型是不能保证在未来的版本中保持不变。

MessageBody.Data属性类型
内容类型未指定

生成的内容类型

字符串
字符数组
单元阵列的特征向量

文本/平原

文本/ csv

细胞向量的第一个元素是一个表

文本/ csv——如果文件类型csv,还有一个名称值对向量的值“文件类型”、“csv”或者没有这样的一对。

应用程序/ vnd.openxmlformats-officedocument.spreadsheetml.sheet——如果文件类型电子表格

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

发送一个uint8向量没有转换和忽视content - type头字段,设置有效载荷财产,而不是数据

发送字符的数据没有转换,使用unicode2native函数。这个函数使用字符集属性转换数据到一个uint8向量。

如果不是一个类型中列出的表,然后用MATLAB决定是否以下基于字符类型之一:

  • 文本/ *

  • 任何类型和字符集

  • javascript应用程序/ *

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

MATLAB将这些类型转换为字符串,如果指定,或者使用字符集us - ascii文本/平原应用程序类型,utf - 8,和其他类型的默认编码MATLAB。

将响应消息中的数据

当收到一条消息,该消息带有一个有效载荷,MATLAB将传入的字节流(MessageBody.Data财产)一个合适的MATLAB类型。

下表列出了MATLAB在响应消息中识别的内容类型,基础类型/子类型属性和收到的字符集属性内容类型字段。只有在MATLAB转换数据HTTPOptions.ConvertResponse房地产是真的,这是缺省设置。在表中,星号字符(*)是指任何字符。

响应消息内容类型 MATLAB输入MessageBody.Data财产
application / json

数据根据字符集转换成字符串,然后利用MATLAB数据jsondecode函数。

图像/ *

数据转化为一个图像使用吗imread函数与指定的子类型的格式,使用默认参数。如果imread返回多个值数据是一个单元阵列。

支持类型的图像数万博1manbetx据,请参阅万博1manbetx支持图像数据子类型。如果亚型不在这个列表中,然后传递给子类型imwrite的格式,这可能或可能不支持。万博1manbetx

音频/ *

数据转换使用audioread功能单元阵列的两个值,一个m×n的矩阵的音频数据和赫兹的采样率。子类型决定了所使用的格式audioread。支持的类万博1manbetx型有:

  • 音频/ wav

  • 音频/ x-wav

  • 音频/ vnd.wav

  • 音频/ mp4

  • 音频/ flac

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

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

数据被转换为一个表使用吗readtable,认为“文件类型”csv字符集,如果指定,或MATLAB的默认编码。

电子表格应用程序/ * *

数据被转换为一个表使用吗readtable,“文件类型”认为是“表格”

text / xml
应用程序/ xml

如果Java是可用的,数据被转换为一个Java org.w3c.dom。文档使用xmlread函数。

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

如果不是一个类型中列出的表,然后用MATLAB决定是否以下基于字符类型之一:

  • 文本/ *

  • 任何类型和字符集

  • javascript应用程序/ *

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

MATLAB将这些类型转换为字符串,如果指定,或者使用字符集us - ascii文本/平原应用程序类型,utf - 8,和其他类型的默认编码MATLAB。

如果MATLAB不支持的类型,或者万博1manbetxHTTPOptions.ConvertResponse属性设置为,那么:

  • 如果类型是基于字符,那么数据包含负载转换为字符串。

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

如果输入数据转换是尝试但失败(例如,“图像/ jpeg”数据是无效的JPEG数据),那么历史财产的textbox抛出的RequestMessage.send方法包含ResponseMessage有效载荷属性设置为uint8有效载荷,如果类型是基于字符,那么数据设置为有效载荷转换为一个字符串。

万博1manbetx支持图像数据子类型

下面的子类型是支持的万博1manbetximwrite函数作为指定的格式。例如,理由亚型的格式骨形态发生蛋白bmp的。的imread功能转换与指定的子类型的数据格式。

子类型

所使用的格式
imwriteimread

骨形态发生蛋白

bmp的

gif

“gif”

jpeg

“jpeg”

jp2

“jp2”

jpx

“jpx”

png

“png”

tiff

“饮”

x-hdf

“hdf”

x-portable-bitmap

“pbm”

x-pcx

图形文件的

x-portable-graymap

“pgm”

x-portable-anymap

“pnm”

x-portable-pixmap

ppm的

x-cmu-raster

“拉”

x-xwd

“使用xwd”

另请参阅

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