主要内容

HTTP数据类型转换

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

转换请求消息中的数据

发送带有有效负载的消息时,将MATLAB数据分配给数据中的属性MessageBody对象,然后将其作为身体中的属性RequestMessage对象。MATLAB数据的类型取决于消息的HTTP Content-Type。如果没有指定内容类型,则MATLAB假定内容类型值,如中所述内容类型未指定

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

内容类型

输入MATLABMessageBody。数据财产

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取决于子类型。有关受支持类型和控制转换的信息,请参见金宝app金宝app支持的图像数据子类型

若要控制图像数据的转换或基于子类型重写转换类型,请指定附加参数imwrite使用单元格数组。如果指定图像格式参数(fmt),然后重写默认转换。

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

body = MessageBody({imageData,“jpg”“质量”, 50});请求信息(“把”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矩阵和以Hz为单位的采样率的单元格数组。可以指定其他参数audiowrite通过向单元格数组添加名称-值对参数。

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

  • 音频/ 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,创建单元格数组,包含数据还有附加的参数。如果您指定“文件类型”参数时,该类型必须与指定的子类型一致。

内容类型未指定

的类型为基础分配类型、子类型和字符集数据财产。这种假定的行为可能不会产生您想要的内容类型,或者可能无法确定类型,因此为了获得最佳结果,请指定内容类型。下表描述了基于的假定内容类型数据.未列出的类型可能会被处理,但未列出的类型的行为不能保证在将来的版本中保持相同。

MessageBody。数据属性类型
内容类型未指定

生成的内容类型

字符串
字符数组
字符向量的单元格数组

文本/平原

表格

文本/ csv

第一个元素为表格的单元格向量

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

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

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

发送uint8vector不进行转换并忽略Content-Type报头字段,则设置有效载荷属性而不是数据

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

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

  • 文本/ *

  • 任何带有字符集的类型

  • javascript应用程序/ *

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

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

在响应消息中转换数据

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

下表是MATLAB根据接收到的Content-Type字段中的类型/子类型属性和字符集属性在响应消息中识别的Content-Type列表。MATLAB转换数据仅当HTTPOptions。ConvertResponse属性为true,这是默认值。在表中,星号字符()表示任何字符。

响应消息内容类型 输入MATLABMessageBody。数据财产
application / json

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

图像/ *

数据转换为图像时使用imread函数使用指定的子类型作为格式,并使用默认参数。如果imread那么,返回多个值数据是单元格数组。

有关支持的图像数金宝app据类型,请参见金宝app支持的图像数据子类型.如果子类型不在此列表中,则将子类型传递给imwrite格式,可能支持,也可能不支持。金宝app

音频/ *

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

  • 音频/ 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不支持该类型,或者金宝appHTTPOptions。ConvertResponse属性设置为,那么:

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

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

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

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

类支持以下子类型金宝appimwrite函数作为指定的格式。例如,subtype的format参数骨形态发生蛋白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

图形文件的

x-portable-graymap

“pgm”

x-portable-anymap

“pnm”

x-portable-pixmap

ppm的

x-cmu-raster

“拉”

x-xwd

“使用xwd”

另请参阅

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