Main Content

matlab.net.http.MessageBody 클래스

네임스페이스: matlab.net.http

HTTP 메시지 본문

설명

MessageBody 객체는 HTTP 메시지 본문을 포함합니다. 요청 메시지에서 Body 속성을 데이터로 설정하거나 데이터를 포함하는 MessageBody 객체로 설정합니다. 응답 메시지에서 이 객체는 수신된 데이터를 포함합니다.

메시지 데이터는 두 가지 속성으로 표현됩니다. Payload 속성은 네트워크로 전송되거나 네트워크에서 수신된 원시 바이트를 포함합니다. Data 속성은 Payload를 MATLAB® 유형으로 포함합니다. 많은 경우, 이 두 가지 속성 중 하나만 설정합니다.

클래스 특성

Sealed
true

클래스 특성에 대한 자세한 내용은 클래스 특성 항목을 참조하십시오.

생성

MessageBody 객체는 HTTP 메시지 본문을 포함합니다. 요청 메시지에서 Body 속성을 데이터로 설정하거나 데이터를 포함하는 MessageBody 객체로 설정합니다. 응답 메시지에서 이 객체는 수신된 데이터를 포함합니다.

메시지 데이터는 두 가지 속성으로 표현됩니다. Payload 속성은 네트워크로 전송되거나 네트워크에서 수신된 원시 바이트를 포함합니다. Data 속성은 Payload를 MATLAB 유형으로 포함합니다. 많은 경우, 이 두 가지 속성 중 하나만 설정합니다.

속성

모두 확장

메시지 데이터로, 다음 MATLAB 데이터형 중 하나로 지정됩니다. 변환 세부 정보는 HTTP Data Type Conversion 항목을 참조하십시오.

  • uint8 벡터 — 변환되지 않는 Data입니다.

  • 문자형 배열 또는 string형 스칼라 — Content-Type 헤더에 포함된 미디어 형식과 해당 문자 집합 특성을 기반으로 하여 변환되는 Data입니다.

  • 구조체형 배열 — webreadwebwrite를 사용하여 JSON 문자열로 변환되거나 JSON 문자열에서 변환되는 Data입니다.

  • 이미지 — imreadimwrite를 사용하여 이미지로 변환되거나 이미지에서 변환되는 Data입니다.

  • XML DOM — xmlreadxmlwrite를 사용하여 문자열 간에 변환되는 Data입니다.

  • 오디오 데이터 — audioreadaudiowrite를 사용하여 변환되는 Data입니다.

  • 테이블 — readtablewritetable을 사용하여 변환되는 Data입니다.

  • 기타 유형의 배열 또는 셀형 배열 — jsonencodejsondecode를 사용하여 JSON으로 변환되거나 JSON에서 변환되는 Data입니다.

요청 메시지에서 Data 속성은 uint8 페이로드로 변환이 수행되기 전의 MATLAB 데이터입니다. 데이터 변환은 RequestMessagesend 메서드나 complete 메서드를 호출할 때 수행됩니다. 변환은 메시지에 지정하는 Content-Type과 Data 유형에 따라 달라집니다. Content-Type을 지정하지 않으면 send 메서드와 complete 메서드가 데이터에서 유형을 추정하여 적합한 ContentTypeField를 요청 메시지에 추가하려고 합니다.

응답 메시지에서 Data는 서버에서 지정한 Content-Type을 기반으로 하여 MATLAB 유형으로 변환된 uint8 페이로드를 나타냅니다. 변환이 실패할 경우 Data가 빈 상태로 유지되고 원시 데이터가 Payload 속성에 표시됩니다.

응답 Payload가 자동으로 변환되지 않도록 하려면 HTTPOptions.ConvertResponse 속성을 false로 설정하십시오. 이 경우, Data는 문자 데이터를 나타내는 문자열이나 바이트 형식의 uint8 벡터를 포함합니다.

특성:

GetAccess
public
SetAccess
public
Dependent
true

Data 속성의 Content-Type으로, 읽기 전용 matlab.net.http.MediaType 객체로 지정됩니다. 이 속성은 Data 속성의 내용이 페이로드로 변환되거나 페이로드에서 변환되는 방식을 결정합니다. Content-Type에 문자 집합 특성이 포함된 MediaType이 있으면 이 문자 집합에 따라 인코딩이 결정됩니다. 자세한 내용은 IETF®(Internet Engineering Task Force) 웹사이트의 RFC 2616, section 14.17 Content-Type을 참조하십시오.

이 속성은 일반적으로 이 MessageBody를 포함하는 메시지의 Content-Type 필드에 대해 convert를 호출한 결과와 동일한 값을 가집니다.

요청 메시지에는 ContentType을 설정하지 않아야 합니다. MessageBody 객체를 생성할 때 이 속성은 비어 있습니다. MessageBody를 요청 메시지로 복사하면 ContentType이 메시지의 ContentTypeField 값(있는 경우)으로 설정됩니다. RequestMessagesend 메서드와 complete 메서드는 Data 유형과 요청 메시지의 ContentTypeField 값을 기반으로 하여 ContentType을 설정합니다.

응답 메시지에서 ContentType은 메시지의 ContentTypeField를 기반으로 합니다.

특성:

GetAccess
public
SetAccess
public
Transient
true

이 속성은 ResponseMessagePayload 속성이 인코딩되었음을 나타내기 위해 설정됩니다. ContentCoding이 설정되어 있으면 페이로드에 대해 어떠한 처리 작업도 수행되지 않으며 Data 속성은 비어 있습니다.

MATLAB이 gzip 또는 deflate와 같이 지원되는 압축 알고리즘을 사용하여 페이로드가 인코딩된 메시지를 수신하는 경우, 다른 변환을 시도하기 전에 해당 페이로드를 자동으로 디코딩합니다. 디코딩이 성공하면, 선택적으로 Payload에 디코딩된 페이로드를 저장하고 Data에 변환된 페이로드(있는 경우)를 저장합니다. 이 경우, 이 속성은 Payload가 인코딩되지 않았음을 나타내기 위해 비어 있습니다.

페이로드가 인코딩되었지만 디코딩이 실패했거나 HTTPOptions.DecodePayload 속성을 false로 설정하여 디코딩을 차단한 경우, 아직 인코딩 상태인, 처리되지 않은 페이로드가 Payload에 반환되고, Data는 빈 상태로 유지되며, ContentCoding은 응답 메시지의 Content-Encoding 헤더 필드 값을 나타내는 문자열로 구성된 벡터로 설정됩니다. 이 경우, Payload를 있는 그대로 저장하거나(예를 들어, 파일로 씀), ContentCoding에 지정된 압축 알고리즘에 따라 처리할 수 있습니다. 예를 들어, 값이 gzip인 경우 데이터를 파일에 쓰고 gunzip 명령을 사용하여 데이터를 처리할 수 있습니다.

특성:

GetAccess
public
SetAccess
public
Transient
true

데이터형: string

메시지에서 전송된 원시 바이트로, uint8형 벡터, string형 스칼라 또는 문자형 벡터로 지정됩니다. 요청 메시지에서 편의를 위해 Payload를 string형 스칼라나 문자형 벡터로 설정할 수 있습니다. MATLAB은 이 값을 uint8 벡터로 변환합니다. 응답 메시지에서 Payload는 항상 uint8 벡터입니다.

요청 메시지에서 다음이 수행됩니다.

  • string형 스칼라나 문자형 벡터는 ContentType 속성이 있는 경우 이 속성으로 지정 또는 유추되는 문자 집합을 사용하거나, 아무것도 설정되지 않은 경우 UTF-8 인코딩을 사용하여 변환됩니다. 다른 인코딩을 사용하려면 직접 인코딩하고(예: unicode2native 함수 사용) 결과로 반환되는 uint8 벡터를 Payload에 할당하십시오.

  • 바이트 배열에 대한 출력값을 변환하지 않으려면 Data 속성 대신 Payload를 설정해야 합니다. Data를 대신 설정하면, RequestMessage.send에 요청 또는 내역 반환 인수를 지정한 경우 전송된 바이트나, RequestMessage.complete의 반환 값에 담긴 바이트나, HTTPOptions.SavePayload 속성을 설정한 경우 ResponseMessage에 담긴 바이트로 Payload가 채워집니다.

  • Payload를 설정하면 Data가 선택 취소됩니다. DataPayload가 모두 설정된 메시지를 전송하면 Payload가 전송되고 Data는 무시됩니다. send 메서드나 complete 메서드에서 반환되는 응답 메시지와 요청 메시지에서만 두 속성을 동시에 설정할 수 있습니다.

응답 메시지에서 Payload는 다음 경우에 수신되는 원시 바이트입니다.

  • RequestMessage.send 메서드에서 내역 반환 인수를 지정한 경우.

  • HTTPOptions.SavePayload 속성을 true로 설정한 경우.

  • PayloadLogRecord에 나타나는 메시지에 대해 항상 설정된 경우.

  • MATLAB 데이터로의 페이로드 변환에 실패한 경우. 자세한 내용은 HTTPException.History 속성을 확인하십시오.

특성:

GetAccess
public
SetAccess
public
Dependent
true

메서드

모두 확장

버전 내역

R2016b에 개발됨