包:matlab.net.http.io
超类:处理
,matlab.mixin.Heterogeneous
HTTP消息有效负载的消费者
一个ContentConsumer是转换或处理在HTTP中接收到的数据的对象ResponseMessage
对象。MATLAB®在接收响应消息期间反复调用使用者,以便在接收有效负载时处理缓冲区。您可以在接收流数据时对其进行操作或显示。您还可以在接收到整个消息之前中止传输。使用消费者可以改进延迟当处理数据的时间与网络速度相当时(接收指令和开始传输数据之间的延迟)。它还允许您接收无界流响应消息。
ContentConsumer
是一个抽象类。要处理HTTP响应消息中接收到的传入数据,请使用ContentConsumer
子类:
的子类ContentConsumer
类或扩展其中一个子类。
的matlab.net.http.io.ContentConsumer
类是a处理
类。
ContentLength
- - - - - -期望有效载荷长度uint64
|空负载的预期长度,指定为uint64
.属性通常是价值
的性质matlab.net.http.field.ContentLengthField
在头
财产。
如果ContentLength
是空的,则长度未知。负载在以下情况结束putData (uint8.empty)
被称为。
MATLAB在调用之前设置此属性初始化
为了方便子类,这些子类可能从知道数据的长度中受益。
如果这ContentConsumer
是顶级消费者的委托,那么值是ContentLength
可能不同于ContentLength
顶级消费者的值。
例子:元素个数(someData)
在哪里someData
是类型uint8
GetAccess |
公共
|
SetAccess |
公共
|
ContentType
- - - - - -有效负载的媒体类型matlab.net.http.MediaType
|空有效负载的媒体类型,指定为matlab.net.http.MediaType
对象。属性通常是价值
的性质matlab.net.http.field.ContentTypeField
在头
财产。如果ContentType
财产是空的,那么ContentTypeField
为空或不存在。
MATLAB在调用之前设置此属性初始化
为方便子类可能需要检查MediaType
.如果子类从数据中确定它是不同的,则可以设置此属性MediaType
.
在传输结束时,MATLAB将此值复制到Response.Body.ContentType
财产。
例子:的应用程序/八进制
GetAccess |
公共
|
SetAccess |
公共
|
URI
- - - - - -正在处理的请求的目的地matlab.net.URI
正在处理的请求的目的地,指定为matlab.net.URI
对象。该值是初始目标URI,由发送
.它不是代理的URI,也不是重定向后的最终URI。
MATLAB在调用之前设置此属性初始化
,以便于子类的使用。
GetAccess |
公共
|
SetAccess |
公共
|
请求
- - - - - -完成RequestMessage
这是发送的matlab.net.http.RequestMessage
完成的RequestMessage
它被发送,被指定为matlab.net.http.RequestMessage
对象。这是最后的RequestMessage
毕竟重定向,这是completedrequest
的返回值。发送
方法。
MATLAB在调用之前设置此属性初始化
,以便于子类的使用。
GetAccess |
公共
|
SetAccess |
公共
|
响应
- - - - - -ResponseMessage
正在处理matlab.net.http.ResponseMessage
的ResponseMessage
正在处理,指定为matlab.net.http.ResponseMessage
对象。
MATLAB设置响应
呼叫前的财产初始化
.值是ResponseMessage
在收到报头之后,但在接收任何有效负载之前。在响应消息处理的开始(或多部分消息的一部分的开始)ResponseMesssage。身体
属性是MessageBody
带空的对象数据
和有效载荷
属性。要存储接收到的数据,消费者可以修改响应
和MessageBody。数据
属性。通常,消费者处理并存储数据集Response.Body.Data
到它们处理的有效负载,尽管这不是必需的。在传递完成时,MATLAB返回这个响应
给打电话的人发送
.消费者不应修改其他响应
属性,例如头
或状态栏
,因为这些更改将返回给调用者发送
.
的Response.Body.Payload
财产在转让过程中是空的,消费者不应该试图修改它。如果HTTPOptions。SavePayload
属性设置,则MATLAB设置有效载荷
在消息或部件的传输结束时(在调用之后)发送到所接收的有效负载putData (uint8.empty)
)或发生异常时。
如果在消息处理期间在消费者中发生异常,则MATLAB抛出textbox
对象。的历史
属性包含以下内容响应
价值。
如果使用者是正在处理多部分消息的一部分的委托,则响应。头
包含整个消息的标头,以及有效载荷
和数据
的属性响应。身体
在调用ContentConsumer
对于每个部分。在每个部分的结论,一个新的ResponseMessage
被添加到数组的末尾ResponseMessage
对象的初始响应的身体。数据
包含头
从这个物体和身体
根据这个性质。下一个委托看到一个fresh响应
带着一个空的MessageBody
,而不是前一个委托的MessageBody
.
GetAccess |
公共
|
SetAccess |
公共
|
依赖 |
真正的
|
头
- - - - - -当前正在处理的有效负载的报头matlab.net.http.HeaderField
当前正在处理的有效负载的头,指定为matlab.net.http.HeaderField
对象。
消费者使用这个报头来确定如何处理发送给他们的有效负载。对于顶级消费者,此值与响应。头
.对于委托,该值可能不同。处理的多部分消息中MultipartConsumer
,它是这个委托正在处理的部件的标头。代表仍然可以检查响应。头
获取原始消息的标头。
MATLAB在调用之前设置此属性初始化
,以便于子类的使用。
GetAccess |
公共
|
SetAccess |
公共
|
CurrentLength
- - - - - -当前数据的长度Response.Body.Data
uint64.empty
(默认)|uint64
中当前数据的长度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将此属性设置为空初始化
.
GetAccess |
受保护的
|
SetAccess |
受保护的
|
CurrentDelegate
- - - - - -ContentConsumer
这个消费者正在委托的对象matlab.net.http.io.ContentConsumer
|[]
的ContentConsumer
此消费者正在委托的对象,指定为matlab.net.http.io.ContentConsumer
对象。的delegateTo
方法的调用方(委托方)设置CurrentDelegate
财产。如果当前没有委托,则值为[]
.
MATLAB集CurrentDelegate
来[]
在调用之前初始化
.
GetAccess |
受保护的
|
SetAccess |
受保护的
|
MyDelegator
- - - - - -ContentConsumer
委托给这个消费者matlab.net.http.io.ContentConsumer
|空的ContentConsumer
委托给这个消费者的,指定为matlab.net.http.io.ContentConsumer
对象。如果此使用者是由另一个使用者调用的委托,例如GenericConsumer
或MultipartConsumer
,那么这就是来电的消费者。在调用中指定的顶级消费者中为空发送
.
委托可以使用此属性访问其委托的属性,例如,确定将哪个消费者委托给它们。
GetAccess |
受保护的
|
SetAccess |
受保护的
|
AppendFcn
- - - - - -调用的函数putData
附加额外的数据函数,指定为函数句柄,由putData
方法追加其他数据。的putData
方法调用AppendFcn
函数追加接收到的数据数据
参数转换为响应消息中的现有数据。函数必须具有签名:
newdata AppendFcn(消费者)
在哪里newdata
数据是否被追加到数组consumer.Response.Body.Data
.这个方法负责更新消费者。CurrentLength
的新长度数据
.如果newdata
为空,表示流结束,那么函数应该更新吗Response.Body.Data
到它的最终值。
如果此属性为空,则默认行为将使用处理数据
的任意值数组金宝apphorzcat
函数。它有效地增加了newdata
通过预分配空间,维护CurrentLength
存储数据的实际长度。在消息的末尾,它被截断Response.Body.Data
来CurrentLength
.
子类可以更改此属性,如果horzcat
不适用于追加过程。例如,当aStringConsumer
构造标量字符串时,它将使用+
函数而不是horzcat
.
不调用的子类ContentConsumer.putData
附加数据,或满意的数据horzcat
行为时,可以忽略此属性。
例子:@customAppend
在哪里@customAppend
是由消费者定义的吗
GetAccess |
受保护的
|
SetAccess |
受保护的
|
初始化 |
为消费者准备新的HTTP有效负载 |
开始 |
启动HTTP数据传输到ContentConsumer |
putData |
处理或保存ContentConsumer的下一个数据缓冲区 |
delegateTo |
委托给另一个消费者 |
当你指定ContentConsumer
在电话中RequestMessage.send
,消费者是一个顶级消费者。MATLAB在接收整个有效载荷时传递它,每次传递一个缓冲区。例如:
req = requestmessage;Resp = req。发送(url, [], MyConsumer);
由另一个使用者调用来处理消息中的全部或部分数据的使用者是委托.
在下面的代码中,国会议员
是接收多部分消息的整个有效负载的顶级消费者。
mp = MultipartConsumer(“图像/ *”ImageConsumer,“文本/ *”, StringConsumer);Resp = req。发送(url, [], mp);
ImageConsumer
和StringConsumer
对象是委托消费者,它只获取有效负载的图像或文本部分。一个GenericConsumer
也使用委托。一个ContentConsumer
通常不关心它是顶级消费者还是委托。任何消费者matlab.net.http.io
包可以作为委托工作。
ResponseMessage
|RequestMessage
|HeaderField
|BinaryConsumer
|FileConsumer
|GenericConsumer
|ImageConsumer
|JSONConsumer
|MultipartConsumer
|StringConsumer
|ContentLengthField
|ContentTypeField
|MediaType
|matlab.net.URI
|内容提供者
您点击了与此MATLAB命令对应的链接:
通过在MATLAB命令窗口中输入命令来运行该命令。Web浏览器不支持MATLAB命令。金宝app
你亦可选择下列网址:
选择中国网站(中文或英文)以获得最佳网站性能。其他MathWorks国家网站没有针对您所在位置的访问进行优化。