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 中推出