complete
类: matlab.net.http.io.ContentProvider
命名空间: matlab.net.http.io
完成 ContentProvider 的 HTTP 标头
语法
complete(provider,URI)
说明
complete(
使用此提供程序所需的标头字段来扩充消息标头。provider
,URI
)RequestMessage.send
和 RequestMessage.complete
方法在验证标头或添加任何默认字段之前,以及在此类中调用除 expectedContentLength
之外的其他方法之前调用此方法。
子类可以在这里向标头中添加任何字段(取决于内容),如 Content-Type。有关详细信息,请参阅 Header
属性的说明。
如果消息已完成(即,如果 RequestMessage.Completed
为 true
),则 RequestMessage
方法不会调用此方法。但是,消息完成后再进行更改将会重置 RequestMessage.Completed
属性,从而允许这些方法再次调用此方法。因此,在调用 start
之前,提供程序应预备好有多次对 complete
的调用。一旦开始调用 start
,MATLAB® 将不会在此提供程序中再次调用 complete
,除非 reusable
返回 true
,指示此提供程序可以重用于其他消息。
如果 ContentProvider
是扩展另一个 ContentProvider
的提供程序,则应首先调用其超类 complete
方法,向 Header
中添加超类所需的标头字段,然后在返回时根据需要修改这些字段。
此方法的默认行为不起作用,但如果此提供程序已启动并且不可重用,则会引发异常。覆盖此方法的提供程序应始终调用其超类。
如果此提供程序不是 Multipart 代理,而且您想要在消息中包含一个 Content-Length 字段(以避免分块传输编码),则您应该在 expectedContentLength
中返回非空值,或者通过实现此方法在 Header
中插入 Content-Length 字段。
此方法不会对 Completed
属性设置为 true
的消息调用,因为此设置通常意味着即使消息多次重新发送,也只对每个消息调用此方法一次。因此,此方法的实现应该执行每个消息只需完成一次的初始化。在数据准备好发送之前不需要完成的成本高昂的初始化应在 start
方法中执行。
输入参数
属性
Access | protected |
示例
版本历史记录
在 R2018a 中推出