主要内容

putData

R2026b

类: matlab.net.http.io.MultipartConsumer
命名空间: matlab.net.http.io

处理 MultipartConsumer 的下一个数据缓冲区

语法

[length,stop] = putData(consumer,data)

描述

[length,stop] = putData(consumer,data) 将 data 的缓冲区累加起来,直到收集完 Multipart 消息的一个完整部分为止。然后,它根据该部分标头中的 Content-Type 字段查找可以处理该类型的合适的 ContentConsumer 代理,将代理的 Header 属性设置为该部分的标头,然后在该代理中调用 initialize 和 start。之后进行一次或多次 putData 调用,传入该部分的有效负载,最后调用 putData(uint8.empty) 指示有效负载结束。

最后一次调用代理的 putData 后,此方法创建一个 ResponseMessage,其中包含该部分的标头以及从代理的 Response.Body 中复制的 Body。(该 Body 可能包含数据,也可能不包含数据,取决于代理的作用。)它将这个新的 ResponseMessage 添加到此使用程序的 Response.Body.Data 属性中的 ResponseMessage 对象数组中,当到达消息末尾时,该数组中会包含对应于每一部分的 ResponseMessage。

此方法可覆盖 putData。如果您在消息结束之前(data 非空)覆盖此方法并返回 stop=true,以便在消息正常结束之前终止接收消息,那么您应该避免在随后的 putData(uint8.empty) 调用(在您设置 stop 后,MATLAB® 通常会进行此调用)中调用此超类方法。否则,将会因为消息提前结束而导致 MultipartConsumer 引发消息无效异常。

输入参数

全部展开

内容使用程序,指定为 matlab.net.http.io.MultipartConsumer 对象。

matlab.net.http.ResponseMessage 对象中的原始数据缓冲区,指定为非空 uint8 向量、uint8.empty 或 []。有关这些值的详细信息,请参阅 ContentConsumer.putData 方法的data输入参量。

如果 data 为 [],表示消息已结束并且存在代理,则将代理的 Response 属性复制到此对象的 Response 中。

输出参量

全部展开

已处理的数据的长度,以双精度值或空双精度值形式返回。有关详细信息,请参阅 ContentConsumer.putData 中的 size 参量。

指示是否接收来自此消息的更多数据,返回为 true 或 false。有关详细信息,请参阅 ContentConsumer.putData 中的 stop 参量。

属性

Accesspublic

版本历史记录

在 R2018a 中推出