包:matlab.net.http.io
超类:matlab.net.http.io.ContentConsumer
HTTP消息中多种内容类型的使用者
消费者= GenericConsumer
构造一个GenericConsumer
使用默认的消费者。
消费者= GenericConsumer (
构造一个puthandle
)ContentConsumer
调用指定的函数puthandle
对该消费者的每个调用putData
方法。
类型
- - - - - -内容类型内容类型,指定为字符串数组、字符向量或字符向量的单元格数组。类型
使用语法指定内容类型“类型/子类型”
.
的每个元素中的类型和子类型组件类型
作为正则表达式处理,匹配的类型/子类型的ContentTypeField
在响应中,加上类型或子类型的单个'*'匹配任何类型或子类型,所有搜索都锚定在字符串的开头和结尾。例如,
类型/子类型 |
匹配 |
---|---|
文本/ * |
类型“文本” 和任何子类型 |
* / * json。* |
包含的任何子类型json的 |
* / * json |
任何子类型以。结尾的类型json的 |
* / * |
任何类型或子类型 |
如果子类型为‘*’
,则可以省略末尾“/ *”
.文本
是一样的“文本/ *”
.
类型
按出现的顺序搜索,并使用第一个匹配项。如果指定的类型之间没有匹配,则根据类型使用默认的消费者集合,顺序如下:
类型/子类型 |
默认的消费者 |
---|---|
多部分/ * |
MultipartConsumer |
图像/ * |
ImageConsumer |
* json。* * / |
JSONConsumer |
* / * |
StringConsumer |
* / * |
BinaryConsumer |
虽然两StringConsumer
和BinaryConsumer
用于任何类型,StringConsumer
仅接受可以确定字符集的类型,指定为文本/ *
,任何具有字符集属性的类型,或MATLAB知道的基于字符的类型之一,例如“应用程序/ xml”
和“应用程序/ javascript”
.如果StringConsumer
然后拒绝该类型BinaryConsumer
接受类型并将未转换的有效负载存储在Response.Body.Data
作为一个uint8
向量。
当该使用者基于此搜索条件选择匹配的委托时,它将调用委托的初始化
方法以查看委托是否接受有效负载。如果方法返回假
若要指示委托不接受,则该消费者将继续搜索列表,以找到下一个匹配的委托。
消费者
- - - - - -内容消费matlab.net.http.io.ContentConsumer
|函数处理内容使用者,指定为matlab.net.http.io.ContentConsumer
可以处理指定类型之一的对象,或返回ContentConsumer
可以处理这些类型。
puthandle
- - - - - -putData函数函数的句柄ContentConsumer.putData
语法:
(长度、停止)= putData(数据)
在哪里数据
一个uint8
数组和长度
是数组的长度。
当您知道服务器返回的数据类型时,可以使用此语法来使用单个函数处理来自服务器的所有输入。函数不能访问ResponseMessage
或任何有关该消费者的信息。
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 |
公共
|
头
- - - - - -当前正在处理的有效载荷报头matlab.net.http.HeaderField
当前正在处理的有效负载的报头,指定为matlab.net.http.HeaderField
对象。
使用者使用此头来确定如何处理发送给他们的有效负载。对于顶级使用者,这个值与响应。头
.对于委托,值可能不同。例如,在由MultipartConsumer
,它是该委托正在处理的部分的头部。委托仍然可以进行检查响应。头
用于原始消息的报头。
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
初始响应中的的身体。数据
包含头
从这个物体和身体
从这个属性。下一个委托看到一个新的响应
空着MessageBody
,而不是前一个委托MessageBody
.
GetAccess |
公共
|
SetAccess |
公共
|
依赖 |
真正的
|
URI
- - - - - -正在处理的请求的目的地matlab.net.URI
被处理请求的目的地,指定为matlab.net.URI
对象。该值是由发送
.它不是代理的URI,也不是重定向后的最终URI。
MATLAB在调用之前设置这个属性初始化
,以方便子类。
GetAccess |
公共
|
SetAccess |
公共
|
PutMethod
- - - - - -putData
方法[]
putData
方法,指定为函数句柄或指定为[]
如果CurrentDelegate
是集。
此属性由delegateTo
.子类应该在它们的putData
方法发送数据到委托,或通过发送结束委托的数据部分uint8.empty
:
[len, stop] = obj.PutMethod(data);
在消息的结尾,在上面调用任何委托以结束消息之后,应该设置子类PutMethod
清空并调用调用putData (uint8.empty)
以便该类知道消息已经结束。这putData
调用将离开PutMethod
空或将其设置回puthandle
参数传递给构造函数。
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
不适合追加进程。例如,当StringConsumer
构造标量字符串时,它将使用+
函数来代替horzcat
.
不调用的子类ContentConsumer.putData
附加数据或满足要求的数据horzcat
行为时,可以忽略此属性。
例子:@customAppend
在哪里@customAppend
是由消费者定义的
GetAccess |
受保护的
|
SetAccess |
受保护的
|
CurrentDelegate
- - - - - -ContentConsumer
这个消费者正在委托给它matlab.net.http.io.ContentConsumer
|[]
的ContentConsumer
该消费者正在委托的对象,指定为matlab.net.http.io.ContentConsumer
对象。的delegateTo
方法的调用者(委托程序)设置CurrentDelegate
财产。如果当前没有委托,则该值为[]
.
MATLAB集CurrentDelegate
来[]
在调用之前初始化
.
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 |
受保护的
|
MyDelegator
- - - - - -ContentConsumer
委托给这个消费者matlab.net.http.io.ContentConsumer
|空的ContentConsumer
委托给这个消费者,指定为matlab.net.http.io.ContentConsumer
对象。如果该消费者是由另一个消费者调用的委托,例如GenericConsumer
或MultipartConsumer
,那么这就是调用消费者。在调用中指定的顶级使用者中,它是空的发送
.
委托可以使用此属性访问委托的属性,例如,确定委托给它们的消费者是哪个。
GetAccess |
受保护的
|
SetAccess |
受保护的
|
初始化 |
为使用者准备新的HTTP有效负载 |
开始 |
开始向GenericConsumer传输数据 |
putData |
为GenericConsumer保存下一个数据缓冲区 |
delegateTo |
委托给其他消费者 |
你点击一个链接对应于这个MATLAB命令:
通过在MATLAB命令窗口中输入命令来运行命令。Web浏览器不支持MATLAB命令。金宝app
你也可以从以下列表中选择一个网站:
选择中国网站(中文或英文)以获得最佳网站性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。