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