complete
类: matlab.net.http.ResponseMessage
命名空间: matlab.net.http
基于 Content-Type 处理或重新处理响应有效负载
说明
返回由 msg
= complete(msg
,consumer
)matlab.net.http.io.ContentConsumer
处理 msg.Body.Payload
的消息的副本。使用程序可能将其结果存储在 msg.Body.Data
中或以其他方式处理。
请在以下情况下使用 complete
方法:
由于服务器在消息中插入了错误的 Content-Type 或者 Content-Type 缺失,而未设置
Body.Data
或者设置不正确。您将 ConvertResponse
HTTPOptions.ConvertResponse
属性设置为false
,以防在最初收到数据时转换数据。您在发送消息时指定了错误的
consumer
。
如果处理接收到的消息时出现异常,或者您在发送请求时设置了 HTTPOptions.SavePayload
属性,此响应消息中的 Body.Payload
将包含原始有效负载(如果有)。在这种情况下,可以修改此消息的标头,以添加或更正 Content-Type 字段。然后调用 complete
方法来处理该响应,就好像服务器原来已插入该 Content-Type 字段一样。结果是由指定的 consumer
处理的 Body.Data
和/或 Data
中的新内容。
如果设置了 Body.Payload
,此方法将忽略 Body.Data
的当前值,并基于 Content-Type 重新处理该有效负载。如果出现转换错误或者您指定了 SavePayload
,将会发生这种情况。但是,如果原来已成功转换传入数据,但是不正确,则会设置 Body.Data
,而 Body.Payload
可能为空。在这种情况下,可将接收到的消息中的 ContentTypeField 更改为所需的类型,然后调用此方法。complete
将尝试根据原来转换数据时使用的 Body.ContentType
属性,将数据转换回有效负载。然后使用响应消息中的新 Content-Type 标头重新转换数据。如果 Data
不为空,则设置了返回的 Body.Payload
。
如果您在发送消息时指定了 SavePayload
,complete
将改用 Body.Payload
中保留的原始有效负载,不会丢失任何信息。
如果设置了 ResponseMessage.Completed
属性,则 complete
不会执行任何操作。在包含 Body
的消息中,通常只有设置了 msg
.Body.Payload
时,才会设置此属性。
输入参数
输出参量
示例
版本历史记录
在 R2016b 中推出