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에 개발됨