Main Content

initialize

클래스: matlab.net.http.io.ContentConsumer
네임스페이스: matlab.net.http.io

새 HTTP 페이로드에 대한 소비자 준비하기

구문

OK = initialize(consumer)

설명

OK = initialize(consumer)는 새 HTTP 페이로드에 사용될 수 있도록 ContentConsumer를 준비합니다.

MATLAB®은 페이로드를 포함할 수 있는 ResponseMessage의 헤더를 수신한 뒤에 해당 페이로드에 사용될 수 있도록 소비자를 준비하기 위해 initialize를 호출합니다. 명시적 Content-Length가 0인 메시지와 같이 페이로드를 포함하지 않는 메시지의 경우나 전체 헤더가 수신되지 않은 오류 케이스의 경우에는 호출되지 않습니다.

대리 소비자의 delegateTo 메서드도 initialize를 호출합니다.

사용자가 ContentConsumer의 서브클래스를 생성한 경우, 적어도 응답이 처리하고자 하는 유형인지 ContentType 속성을 확인해야 합니다. 이 메서드는 다음 목적으로 재정의할 수 있습니다.

  • 사용자 자체 속성 초기화

  • 해당 페이로드를 처리할지 결정

  • OK가 아닌 Response.StatusCode를 갖는 페이로드 처리

사용자는 이 메서드에서 이후 초기화를 수행할지 아니면 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에 개발됨