Main Content

initialize

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

配置使用程序以处理新的 HTTP 有效负载

语法

OK = initialize(consumer)

说明

OK = initialize(consumer) 配置 ContentConsumer 以处理新的 HTTP 有效负载。

MATLAB® 在收到可能包含有效负载的 ResponseMessage 的标头后调用 initialize,以配置好使用程序用于处理该有效负载。对于预计不包含有效负载的消息,如 Content-Length 明显为 0 的消息,或在未收到完整标头的错误情况下,则不会调用此方法。

代理使用程序中的 delegateTo 方法也调用 initialize

如果您要创建 ContentConsumer 的子类,则应该至少检查 ContentType 属性,确认该响应正是您准备处理的类型。您可以覆盖此方法以达到某些目的,例如:

  • 初始化您自己的属性

  • 确定您是否要处理有效负载

  • 处理 Response.StatusCode 不是 OK 的有效负载

是继续执行此方法中的后续初始化还是延迟到调用 start 方法之时由您自己决定。

如果消息没有有效负载,即使调用了 initialize,MATLAB 也可能不会调用使用程序的 start 方法。

如果 Response.StatusCodeOK,默认实现将返回 true,否则将返回 false。覆盖此方法的子类应首先调用此超类方法并检查返回值,除非它们要处理的是状态不为 OK 的消息。在此类中调用 putData 的子类必须调用此方法。

使用程序子类应准备好重用于后续消息。MATLAB 会在每个消息之前调用 initialize,然后为每个具有非空有效负载的消息调用 start。一旦 MATLAB 调用 start,将不会再调用 initialize,直到消息结束、引发异常或者消息处理过程中发生中断为止。所有这些情况都通过调用 putData(uint8.empty) 来指示。

输入参数

全部展开

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

输出参量

全部展开

指示使用程序是接受还是拒绝消息的有效负载,返回为 truefalse

  • 如果 ResponseMessage 的状态代码为 StatusCode.OK,则默认值为 true

  • 如果 OKtrue,则说明使用程序接受了消息并开始处理有效负载(如果有)。然后,当有效负载的第一个字节到达后,MATLAB 将调用使用程序的 start 方法,之后再对 putData 进行一次或多次调用,每次调用传递一个数据缓冲区。

  • 如果 OKfalse,则说明使用程序不想处理该消息,这种情况下将由 MATLAB 处理有效负载,就像未指定任何使用程序一样(这可能意味着将有效负载默认转换为数据)。

如果您覆盖 initialize 方法并拒绝该消息,并且希望中止接收消息而不是以默认方式处理消息,则此方法会引发错误,而不是返回 false

属性

Accessprotected

版本历史记录

在 R2018a 中推出