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
의 메서드는 메시지가 이미 완성되었으면(즉, RequestMessage.Completed
가 true
이면) 이 메서드를 호출하지 않습니다. 단, 메시지가 완성된 이후에 변경되면 RequestMessage.Completed
속성이 재설정되어 이러한 메서드가 이 메시지를 다시 호출할 수 있게 됩니다. 따라서 제공자는 start
가 호출되기 전에 complete
가 여러 차례 호출될 수 있다는 사실에 유의해야 합니다. start
가 호출되면 MATLAB®은 reusable
이 true
를 반환하여 이 제공자를 다른 메시지에 재사용할 수 있음을 나타내지 않는 이상 이 제공자에서 complete
를 다시 호출하지 않습니다.
다른 ContentProvider
를 확장하는 ContentProvider
는 먼저 슈퍼클래스의 complete
메서드를 호출하여 슈퍼클래스에 필요한 헤더 필드를 Header
에 추가하고, 반환되면 해당 필드를 수정해야 합니다.
이 메서드의 디폴트 동작은 아무것도 하지 않지만, 이 제공자가 이미 시작되었고 재사용 불가한 경우에는 예외를 발생시킵니다. 이 메서드를 재정의하는 제공자는 항상 자신의 슈퍼클래스를 호출해야 합니다.
이 제공자가 multipart 대리자가 아닌 경우, (청크 형식의 전송 코딩을 피하기 위해) 메시지에 Content-Length 필드를 포함하려면 expectedContentLength
에 비어 있지 않은 값을 반환하거나 이 메서드가 Header
에 Content-Length 필드를 삽입하도록 구현하십시오.
이 메서드는 Completed
속성이 true
로 설정된 메시지에서는 호출되지 않습니다. 이는 일반적으로 메시지가 여러 차례 재전송되더라도 이 메서드는 메시지당 한 번만 호출된다는 것을 의미합니다. 따라서 이 메서드의 구현은 메시지당 한 번만 실행되어야 하는 초기화만 수행해야 합니다. 데이터의 전송 준비가 완료되기 전까지는 실행될 필요가 없는 복잡한 초기화는 start
메서드가 수행해야 합니다.
입력 인수
특성
Access | protected |
예제
버전 내역
R2018a에 개발됨