Main Content

getData

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

HTTP 请求消息中要从 ContentProvider 发送的下一个数据缓冲区

语法

[data,stop] = getData(provider,length)

说明

[data,stop] = getData(provider,length) 返回 HTTP 请求消息中要发送的数据缓冲区。

MATLAB® 在执行 RequestMessage.send 期间在调用 start 之后多次调用此方法,并将每个 data 缓冲区立即发送给服务器。如果是分块消息(例如,expectedContentLength 返回空并且消息中没有 Content-Length 字段),则块的大小等于 data 的长度。

输入参数

全部展开

内容提供程序,指定为 matlab.net.http.io.ContentProvider 对象。

提供程序为了获得最佳交互行为而应返回的数据长度,指定为双精度值。

此值是基于 preferredBufferSize 的值(如果指定)以及内部缓冲区大小建议的长度。但是,提供程序可以返回更多或更少的字节,而且如果您的提供程序要发送特定大小的块,则可以忽略 length。MATLAB 不能保证指定任何特定的 length 值,但它始终是大于零的有限数值。返回较大的 data 缓冲区可能会导致 MATLAB 在发送数据时长时间阻塞,在此期间,您不能使用 Ctrl+C 中断操作。这对于非交互式应用程序来说可能不是问题,因为在这种情况下,大缓冲区效率更高。

输出参量

全部展开

下一个数据缓冲区,返回 uint8 向量或者为空。如果 data 为空且未设置 stop,MATLAB 将重复调用此方法以获取更多数据(经过短暂延迟之后)。要结束消息,请返回 stop=true。但是,您也可以通过引发异常来中止消息,异常将返回给 RequestMessage.send 的调用方。

如果 Content-Length 标头字段包含在消息标头中或由 expectedContentLength 返回(即,未使用分块传输编码发送消息),则 data 中经过多次调用(使用 stop=true 结束)返回的字节总数必须等于该数字。如果提前返回 stop=true,或者返回的 data 总字节数大于该数字,则 MATLAB 会引发异常并关闭连接。

指示是否结束传输,返回提供程序必须设置的逻辑值。如果为 false,MATLAB 将在准备好发送下一个缓冲区时再次调用此 getData,以获取更多数据。如果为 true,则表明除了 data 中返回的数据外,提供程序没有更多数据要发送,并告诉 MATLAB 结束消息。这是结束 RequestMessage 并让 MATLAB 准备好接收 ResponseMessage 的正常方式。

属性

Accesspublic

版本历史记录

在 R2018a 中推出