类:matlab.net.http.io.ContentConsumer
包:matlab.net.http.io
处理或保存ContentConsumer的下一个数据缓冲区
(大小、停止)= putData(消费者,数据)
[
提供的缓冲区大小
,停止
) = putData (消费者
,数据
)数据
从服务器读取到消费者
.
MATLAB®调用putData
.子类消费者可以重写此方法以接收流数据。您的消费者应该返回它实际处理的数据长度大小
,以及在停止
指定是否希望从该消息接收更多数据。
当MATLAB调用putData
空着数据
参数时,表示在多部分消息的情况下,消息或消息部分已经结束。
如果您创建实现此方法的消费者的子类,则您的putData
方法可以调用它的父类putData
利用父类实现的任何转换或处理。
MATLAB限制的大小数据
缓冲区的bufsize
的返回值。开始
方法或内部缓冲区大小bufsize
是[]
.此外,如果服务器发送一个块编码的消息,则给定调用putData
从不提供超过一个块。这允许消费者以及时的方式获得缓慢到达的块,即使bufsize
比块大小大得多。
默认的行为putData ()
在这个基类中:
子类消费者可以选择将可能转换的内容直接存储到Response.Body.Data
,或者逐渐地,或者一下子,或者以其他方式处理它。子类消费者不需要调用它putData
方法来存储数据。为了方便起见,希望增量存储内容的消费者Response.Body.Data
可以调用此方法来实现。这种方法附加数据
来Response.Body.Data
使用AppendFcn
,试图通过增量分配容量来有效地做到这一点。存储数据的实际长度保存在CurrentLength
属性,它可以小于的实际长度Response.Body.Data
.在传输结束时(例如,当putData(消费者,[])
或uint8.empty putData(消费者)
被调用时,Response.Body.Data
被截断CurrentLength
.你可以自己定义AppendFcn
实现一个可选的append方法。
默认情况下,此方法总是返回大小
等于元素个数(数据)
和停止
等于假
.
如果您打算使用此方法存储数据,并且您知道要存储的数据的最大长度,那么您应该设置Response.Body.Data
在第一次调用该方法之前,将其转换为一个用默认值(例如,0)填充的所需大小的向量。该方法在数据区域的开始处开始存储数据,然后将其截断为消息末尾的数据长度,保持存储在其中的数据长度CurrentLength
.
在基类中调用此方法以增量存储数据的消费者可以提供数据
支持的任何类型金宝apphorzcat
或vertcat
,包括结构和单元数组。如果提供单元格数组,则现有的Data将被转换为单元格数组(如果不是的话),并且单元格数组的元素将插入到现有的单元格数组中,其线性索引以CurrentLength
+ 1。
如果你调用这个方法ContentConsumer
为了存储数据,您应该让这个方法管理Response.Body.Data
或CurrentLength
而不是直接修改它们。
ContentConsumers
在超类中调用这个方法的人应该准备好做任何清理工作,比如在超类抛出异常时关闭窗口或删除临时文件。
访问 |
公共 |
matlab.net.http.ResponseMessage
|matlab.net.http.RequestMessage
|matlab.net.http.HTTPException
|matlab.net.http.HTTPOptions
|开始
|CurrentLength|响应|AppendFcn|MultipartConsumer