主要内容

matlab.net.http.io.ContentConsumer类

包:matlab.net.http.io
超类:处理matlab.mixin.Heterogeneous

HTTP消息有效负载的消费者

描述

一个ContentConsumer转换或处理HTTP中接收的数据的对象是什么ResponseMessage对象。MATLAB®在接收响应消息期间重复调用使用者,以在接收有效负载时处理其缓冲区。您可以在接收流数据时对其进行操作或显示。您还可以在收到整个消息之前中止传输。使用消费者可以改善延迟(从接收指令到开始传输数据之间的延迟),处理数据的时间与网络速度相当。它还允许您接收无限流响应消息。

ContentConsumer是一个抽象类。要处理HTTP响应消息中接收到的传入数据,请使用ContentConsumer子类:

你也可以写你自己的子类ContentConsumer类或扩展一个子类。

matlab.net.http.io.ContentConsumer班级是一个处理类。

属性

全部展开

公共属性

预期的有效载荷长度,指定为uint64.属性通常是价值财产matlab.net.http.field.ContentLengthField财产。

如果内容长度如果为空,则长度未知。有效载荷在以下时间结束:putData (uint8.empty)被称为。

MATLAB在调用之前设置这个属性初始化,方便子类了解数据的长度。

如果这ContentConsumer是顶级消费者的委托,那么值内容长度可能不同于内容长度顶级消费者的价值。

例子:元素个数(someData)在哪里一些数据是类型uint8

属性:

获取访问权限
公众的
SetAccess
公众的

有效负载的媒体类型,指定为matlab.net.http.MediaType对象该属性通常是价值财产matlab.net.http.field.ContentTypeField财产。如果内容类型属性为空,则ContentTypeField为空或不存在。

MATLAB在调用之前设置这个属性初始化为了方便子类可能想要检查MediaType.如果子类从数据中确定它是不同的,则可以设置此属性MediaType

在传输结束时,MATLAB将这个值复制到Response.Body.ContentType财产。

例子:的应用程序/八进制

属性:

获取访问权限
公众的
SetAccess
公众的

建议的缓冲区大小,指定为uint64.MATLAB集AllocationLength传递给的数据缓冲区的预期大小putData. 实际大小可能更小或更大。为了提高性能,使用者可以使用此值预先分配空间来处理数据。

在调用之前,MATLAB设置了这个属性开始方法,以方便子类。

属性:

获取访问权限
公众的
SetAccess
公众的

被处理请求的目的地,指定为matlab.net.URI对象。该值是由发送.它不是代理的URI,也不是重定向后的最终URI。

MATLAB在调用之前设置这个属性初始化,以方便子类。

属性:

获取访问权限
公众的
SetAccess
公众的

完成的RequestMessage这是发送的,指定为matlab.net.http.RequestMessage对象。这是决赛RequestMessage在所有重定向之后,哪个是completedrequest的返回值发送方法。

MATLAB在调用之前设置这个属性初始化,以方便子类。

属性:

获取访问权限
公众的
SetAccess
公众的

ResponseMessage被处理的,指定为matlab.net.http.ResponseMessage对象。

MATLAB设置回应财产之前调用初始化. 值是ResponseMessage在收到报头之后,但在收到任何有效载荷之前。在响应消息处理的开始(或多部分消息的一个部分的开始),ResponseMesssage。身体属性是一个MessageBody对象与空资料有效载荷属性。为了存储接收到的数据,消费者可以修改回应MessageBody.Data数据传输过程中的属性。通常,处理并存储数据集的消费者Response.Body.Data它们的处理有效载荷,尽管这不是必需的。在传输完成后,MATLAB返回这个回应给打电话的人发送. 消费者不应修改其他回应的属性,如状态栏,因为这些更改将返回给调用者发送

Response.Body.Payload属性在传输期间为空,使用者不应尝试修改它。如果HTTPOptions.SavePayload属性设置,然后MATLAB设置有效载荷发送到接收的有效负载的消息传递结束时或发送到的部分(调用后)putData (uint8.empty))或者发生异常时。

如果在消息处理期间消费者中发生异常,则MATLAB将抛出textbox对象。的历史属性包含这回应价值。

如果使用者是正在处理多部分消息的一部分的委托,则响应。头包含整个消息的标题,并且有效载荷资料特性答复.机构在调用ContentConsumer每一部分。在每一部分的结论中,一个新的ResponseMessage添加到的数组的末尾ResponseMessage初始响应中的正文.数据包含从这个物体和身体从这个属性。下一个委托看到一个新的回应空着MessageBody,而不是前一个委托MessageBody

属性:

获取访问权限
公众的
SetAccess
公众的
依赖的
真正的

当前正在处理的有效负载的报头,指定为matlab.net.http.HeaderField对象。

使用者使用此头来确定如何处理发送给他们的有效负载。对于顶级使用者,这个值与响应。头. 对于委托,该值可能不同。例如,在由MultipartConsumer,它是此委托正在处理的零件的标题。代理仍然可以检查响应。头用于原始消息的报头。

MATLAB在调用之前设置这个属性初始化,以方便子类。

属性:

获取访问权限
公众的
SetAccess
公众的

受保护财产

当前在数据库中的数据长度Response.Body.Data属性,指定为uint64

Response.Body.Data已预分配的大小大于当前存储的实际数据量,以指示存储的数据的长度。如果此属性为空,则表示所有Response.Body.Data包含存储的数据或ContentConsumer子类以某种方式处理数据,而不是将其存储在Response.Body.Data

属性使用和设置此属性putData方法AppendFcn属性是空的。这是为了子类调用putData并希望检查已存储的数据和/或的任何实现AppendFcn保持结果Response.Body.Data

使用putData也可以修改此属性以重置数据存储在缓冲区中的位置。例如,当默认AppendFcn函数,该子类处理所有Response.Body.Data每次呼叫putData可能不再使用原始数据,因此可以重置CurrentLength属性设置为1,以便下一个putData调用将用新数据覆盖缓冲区。不需要清除缓冲区中超过新数据末尾的元素。

不调用的子类putData可以使用此属性跟踪自己的数据,也可以不设置(空)。MATLAB没有对可以在这里设置的值施加任何约束,除了确定默认值之外,没有将其用于任何目的AppendFcn应该存储下一个缓冲区的数据,以及在消息的末尾在哪里截断数据。在最终调用之前将此属性设置为空putData (uint8.empty)以防止数据被截断。

在每次调用之前,MATLAB都将此属性设置为空初始化

属性:

获取访问权限
受保护的
SetAccess
受保护的

ContentConsumer该消费者正在委托的对象,指定为matlab.net.http.io.ContentConsumer对象。的delegateTo方法的调用者(委托程序)设置CurrentDelegate财产。如果当前没有委派,则该值为[]

MATLAB集CurrentDelegate[]在调用之前初始化

属性:

获取访问权限
受保护的
SetAccess
受保护的

ContentConsumer委托给这个消费者,指定为matlab.net.http.io.ContentConsumer对象。如果该消费者是由另一个消费者调用的委托,例如GenericConsumerMultipartConsumer,那么这就是调用消费者。在调用中指定的顶级使用者中,它是空的发送

委托可以使用此属性访问委托的属性,例如,确定委托给它们的消费者是哪个。

属性:

获取访问权限
受保护的
SetAccess
受保护的

函数,指定为函数句柄,由putData方法以附加其他数据。的putData方法调用AppendFcn函数将接收到的数据追加到数据参数指向响应消息中的现有数据。函数必须有签名:

newdata AppendFcn(消费者)

在哪里新数据是否将数据追加到数组的位置consumer.Response.Body.Data.更新是这个方法的职责耗电元件电流长度以反映新的长度资料.如果新数据为空,表示流的结束,那么函数应该更新Response.Body.Data直到它的最终价值。

如果此属性为空,则默认行为使用处理资料的任意值数组金宝apphorzcat函数。它有效地增加了新数据通过预先分配空间,维护CurrentLength为存储数据的实际长度。在消息的末尾,它进行截断Response.Body.DataCurrentLength

子类可以在以下情况下更改此属性:horzcat不适合追加进程。例如,当StringConsumer构造标量字符串时,它将使用+函数来代替horzcat

不调用的子类ContentConsumer.putData附加数据,或满足horzcat行为时,可以忽略此属性。

例子:@customAppend在哪里@customAppend是由消费者定义的

属性:

获取访问权限
受保护的
SetAccess
受保护的

方法

全部展开

更多关于

全部展开

介绍了R2018a