send
클래스: matlab.net.http.RequestMessage
패키지: matlab.net.http
HTTP 요청 메시지 전송 및 응답 메시지 수신
구문
설명
[
는 response
,completedrequest
,history
] = send(request
,uri
)request
메시지를 uri
로 지정된 웹 서비스로 전송하고 response
를 반환합니다(있는 경우). request.Method
속성이 지정되지 않은 경우 send
메서드는 이 속성을 'GET'
으로 설정합니다.
기본적으로 send
는 메시지의 헤더와 다른 부분에 대한 의미론적 정확성을 검증하여 uri
를 완성합니다. 이 메서드는 적절하게 구성된 요청에 필요한 모든 헤더 필드도 채웁니다. request.Body
가 아직 Payload
속성이 설정되어 있지 않은 MessageBody
면 send
는 request.Body.Data
를 MessageBody.Data
에 대해 설명된 대로 전송할 HTTP 페이로드를 나타내는 바이트로 구성된 벡터로 변환하기에 적절한 변환 함수를 호출합니다. 일반적으로 'GET'
요청은 데이터를 포함하지 않지만, 이 메서드는 RequestMethod
에 관계없이 Body
를 전송합니다. 서버에서 데이터를 포함하는 응답을 반환했는데 consumer
가 지정되어 있지 않으면 send
가 이 데이터를 MATLAB® 데이터로 변환하여 response.Body.Data
에 저장합니다. 데이터 변환에 대한 자세한 내용은 MessageBody.Data
를 참조하십시오.
request.Body
가 ContentProvider
이면 MATLAB이 전송할 데이터를 가져오기 위해 제공자를 호출합니다.
헤더에 이미 send
메서드가 일반적으로 추가하는 필드가 포함되어 있는 경우 이 메서드는 필드에 예상 값이 있는지 확인합니다. 다음과 같이 디폴트 동작을 재정의할 수 있습니다.
헤더를 확인하거나 변경하지 않고 메시지를 있는 그대로 전송하려면 전송하기 전에
request.Completed
속성을true
로 설정하십시오.complete
메서드를 사용하여 요청을 완료한 경우,complete
에 제공한uri
및options
와 동일한 값을 지정하지 않으면 예기치 않은 결과가 발생할 수 있습니다.Completed
가 설정되어 있더라도RequestLine
의 지정되지 않은 필드는 디폴트 값으로 채워집니다.send
메서드가 헤더를 확인하고 변경하는 것은 허용하되send
나ContentProvider
가 특정 헤더 필드를 추가하는 것을 막으려면 해당 필드에 빈 값([]
)을 지정하여request.Header
에 추가하십시오. 예를 들어,send
는 User-Agent 헤더 필드를 자동으로 추가합니다. 이 필드가 자동으로 추가되지 않도록 하려면 헤더에HeaderField('User-Agent')
를 추가합니다. 빈 값이 지정된 헤더 필드는 메시지에 포함되지 않습니다. Host 필드와 Connection 필드가 추가되는 것은 막을 수 없습니다.send
메서드가 특정 헤더 필드에 추가하는 값을 재정의하려면 메시지를 전송하거나 완료하기 전에 해당 필드를 직접 새로 추가하십시오. 단,ContentProvider
가 추가하는 헤더 필드는 이렇게 해도 재정의할 수 없습니다. 그러나 일부 헤더 필드 유형의 경우, 값이 유효하지 않으면send
가 여전히 메시지를 거부할 수 있습니다. 특정 필드의 값이 확인되지 않도록 하거나ContentProvider
가 추가하는 필드를 재정의하려면 원하는 이름과 값으로matlab.http.field.GenericField
유형의 필드를 헤더에 추가하십시오.send
와ContentProvider
는GenericField
헤더와 이름이 동일한 헤더 필드를 추가하지 않으며, 이 헤더의 정확성을 확인하지 않습니다.원시 이진 데이터를 변환하지 않고 전송하려면
Body.Data
또는Body.Payload
에uint8
벡터를 삽입할 수 있습니다. 유일한 차이점은Body.Data
의 데이터는 메시지의 Content-Type 필드에 따라 변환될 수 있는 반면Body.Payload
는 그렇지 않다는 것입니다.send
는Completed
가 이미 설정되어 있더라도Body.Payload
가 비어 있으면 비어 있지 않은Body.Data
를 항상 변환하려고 시도합니다. 변환 규칙은MessageBody.Data
를 참조하십시오.
입력 인수
출력 인수
예제
오류 처리
항상 response
의 Status
속성을 검사하여 요청이 수락되었는지 확인합니다. 오류 조건은 다음과 같습니다.
MException
— 메시지가 잘못 구성되어 완료될 수 없습니다.HTTPException
— 메시지가 완료되었지만, 웹 서비스에 접근할 수 없거나 웹 서비스가options
에 지정된 제한 시간 내에 응답하지 않습니다.response
의Status
속성 — 웹 서비스가 응답하지만 HTTP 오류 상태를 반환합니다.send
는Status
속성을 서버에서 반환된 오류로 설정하여 정상적으로 반환합니다.
버전 내역
R2016b에 개발됨