包:matlab.net.http.io
超类:matlab.net.http.io.GenericConsumer
助手在HTTP消息多部分内容类型
这个消费者处理多部分HTTP响应消息。一个多部分消息的内容类型头字段指定“扇形”
,他的身体包含一个或多个部分。每个部分包含自己的头字段描述部分,最重要的是一个内容类型字段。
的matlab.net.http.io.MultipartConsumer
类是一个处理
类。
如果你自己去写ContentConsumer
,它将通常工作无论是顶级消费者(作为第三个参数指定RequestMessage.send
方法)或多部分消息的一部分(当指定为一个“代表”MultipartConsumer
构造函数调用)。MultipartConsumer
使它看起来好像是每个委托处理整个响应消息,而实际装配的结果为一个数组ResponseMessages
返回存储在response.Body.Data
财产。
下面描述了MultipartConsumer
行为:
每一次这MultipartConsumer
收到一个完整的信息从服务器的一部分,它解析任何头部分,然后调用适当的代表消费者适合部分中的content - type字段。如果没有部分中的内容类型字段,它假定类型文本/平原
。如果没有委托能够处理类型,它使用默认处理部分内容类型的基础上,所述GenericConsumer
。
MultipartConsumer
不调用委托,直到它收到一个完整的部分。MultipartConsumer
缓冲区的数据部分,最后收到的部分,它复制所有可见的属性ContentConsumer
从这个消费者委托,扫清了委托的Response.Body
,设置委托头
头的部分,然后调用委托的初始化
和开始
方法,紧随其后的是一个或多个调用委托putData
包含部分的载荷方法,其次是调用putData (uint8.empty)
表示数据结尾。如果委托的初始化
方法返回假
表明它不希望处理的部分,处理部分使用默认行为的有效负载的content - type部分所描述的GenericConsumer
。
如果委托的开始
方法返回[]
表明没有最大所需的缓冲区大小,MultipartConsumer
只是一个电话putData
提供的全部有效载荷部分,其次是数据结尾的电话。否则它调用putData
足够的时间来供应整个负载缓冲区大小的单位。
如果委托的putData
方法设置停止
返回值为真正的
表明它不希望任何更多的数据,然后MultipartConsumer
关闭连接结束转移,仿佛已经结束的消息。以这种方式委托控制原始消息的其余部分是否应该处理。如果putData
返回一个大小
的[]
,那么消息也结束了,但有一个例外扔给调用者RequestMessage.send
。
如果消费者是指定为一个函数处理,而不是一个ContentConsumer
实例,那么函数只需要第一次消费,并随后同一个消费者实例是用于任何适当的部分相同的响应消息。部分处理函数处理,相应的ResponseMessage
在Response.Body.Data
只包含一个头的部分,因为没有访问函数ResponseMessage
的身体。
授权使用者可以通过它访问这个消费者及其属性MyDelegator
财产,但很少是必要的。
ResponseMessage
|RequestMessage
|GenericConsumer
|FileConsumer
|ImageConsumer
|MediaType
|MessageBody
|MultipartProvider