complete
클래스: matlab.net.http.ResponseMessage
네임스페이스: matlab.net.http
응답 페이로드 Content-Type 처리 또는 재처리
설명
는 msg
= complete(msg
,consumer
)matlab.net.http.io.ContentConsumer
에 의해 처리된 msg.Body.Payload
를 갖는 메시지의 복사본을 반환합니다. 소비자는 결과를 msg.Body.Data
에 저장하거나 다른 방식으로 처리할 수 있습니다.
다음과 같은 경우 complete
메서드를 사용합니다.
서버가 메시지에 잘못된 Content-Type을 삽입했거나 Content-Type이 누락되었기 때문에
Body.Data
가 설정되지 않았거나 올바르게 설정되지 않은 경우.ConvertResponse
HTTPOptions.ConvertResponse
속성을false
로 설정해두고 데이터 처음 수신 시 데이터가 변환되는 것을 방지하려는 경우.메시지 전송 시 잘못된
consumer
를 지정한 경우.
수신된 메시지를 처리하는 중 예외가 발생하거나 요청을 전송할 때 HTTPOptions.SavePayload
속성을 설정하면 응답 메시지의 Body.Payload
에는 원래 페이로드(있는 경우)가 포함됩니다. 이런 경우가 발생하면 메시지의 헤더를 수정하여 Content-Type 필드를 추가하거나 수정하십시오. 그런 다음, complete
메서드를 호출하면 서버가 원래 해당 Content-Type 필드를 삽입한 것처럼 응답이 처리됩니다. 그 결과로, 지정된 consumer
에 의해 처리된 Body.Data
및/또는 Data
에 새 내용이 생성됩니다.
Body.Payload
가 설정되어 있으면 complete 메서드는 Body.Data
의 현재 값을 무시하고 Content-Type을 기반으로 하여 페이로드를 처리합니다. 변환 오류가 발생하거나 SavePayload
를 지정해 둔 경우에도 마찬가지입니다. 그러나, 수신 데이터에 대한 변환이 처음에는 성공했으나 잘못된 경우에는 Body.Data
가 설정되고 Body.Payload
는 비어 있을 수 있습니다. 이런 경우에는 수신된 메시지에 있는 ContentTypeField를 원하는 유형으로 변경한 후 complete
메서드를 호출하십시오. 그러면 이 메서드는 처음에 데이터를 변환하는 데 사용된 Body.ContentType
속성을 기반으로 데이터를 페이로드로 다시 변환하려 시도하게 됩니다. 그런 후, 메시지는 응답 메시지에 포함된 새 Content-Type 헤더를 사용하여 다시 변환됩니다. Data
가 비어 있지 않으면 반환된 Body.Payload
가 설정됩니다.
메시지를 전송할 때 SavePayload
를 지정해 두면, 정보 손실 없이 Body.Payload
에 유지된 원래 페이로드를 complete
는 대신 사용하게 됩니다.
ResponseMessage.Completed
속성이 설정된 경우 complete
는 아무 동작도 하지 않습니다. Body
를 포함하는 메시지에서 이 속성은 일반적으로 msg
.Body.Payload
가 설정된 경우에만 설정됩니다.
입력 인수
출력 인수
예제
버전 내역
R2016b에 개발됨