主要内容

delegateTo

R2026b

类: matlab.net.http.io.ContentConsumer
命名空间: matlab.net.http.io

委托给另一个使用程序

语法

[OK,bufsize] = delegateTo(consumer,delegate,header)

描述

[OK,bufsize] = delegateTo(consumer,delegate,header) 将 delegate 配置为基于 header 来处理后续有效负载的使用程序。consumer 成为委托方,delegate 成为代理。

要配置代理,delegateTo 需要设置以下属性。

  • 将 consumer.CurrentDelegate 设置为 delegate

  • 将 delegate.Header 设置为 header 的值

  • 将 delegate.MyDelegator 设置为 consumer

  • 将 delegate 属性(如 Request、Response 和 URI)设置为相应的 consumer 属性

delegateTo 然后调用代理的 initialize 方法。如果 initialize 返回 true(表明代理接受该消息),则 delegateTo 调用 start 方法。

只有在通知第一个代理数据已结束后,才能在其他代理中调用 delegateTo。要完成此操作,请调用 delegate.putData(uint8.empty)。

代理的 initialize 方法设置 OK,代理的 start 方法设置 bufsize。仅当 OK 为 true 时,bufsize 才有效。如果 OK 为 false,则说明未调用 start 方法,此使用程序不应在该代理中调用 putData。

输入参数

全部展开

内容使用程序,指定为 matlab.net.http.io.ContentConsumer 对象。

处理有效负载的使用程序,指定为 matlab.net.http.io.ContentConsumer 对象或指定为返回 ContentConsumer 的函数的句柄。如果是函数,则它没有输入参量。

当前正在处理的有效负载的标头,指定为 matlab.net.http.HeaderField 对象。

输出参量

全部展开

指示使用程序是接受还是拒绝消息的有效负载,返回为 true 或 false。如果 ResponseMessage 的状态代码为 StatusCode.OK,则默认值为 true。

如果 OK 为 true,则在每次调用时、在切换到新代理之前或者在消息结束时,调用方必须明确调用 delegate.putData,以便将数据馈送给代理,如果需要,还要将代理插入到其 Response.Body 中的任何数据复制回调用方的 Response 中。

如果 OK 为 false 或者上一个代理已被告知数据已结束,则使用程序可以调用 delegateTo,从而调用另一个代理来处理同一个消息中的后续(或相同)数据。

最大缓冲区大小,返回为双精度值。

属性

Accessprotected

版本历史记录

在 R2018a 中推出