complete
클래스: matlab.net.http.RequestMessage
네임스페이스: matlab.net.http
HTTP 요청 메시지를 전송하지 않고 유효성 검사 후 완료
구문
설명
[는 completedrequest,target] = complete(request,uri)RequestMessage.send 메서드와 같이 메시지 헤더 필드를 추가하고 이에 대한 유효성을 검사한 후 데이터를 변환하지만, 메시지를 전송하지는 않습니다. complete는 디폴트 HTTPOptions 객체가 요청을 완료하고 유효성을 검사하는 방식을 결정한다고 가정합니다.
디버그 용도로 complete 메서드를 사용하여 요청 메시지의 내용을 검토할 수 있습니다.
이 메서드는 Header 속성과 RequestLine 속성을 채우고 유효성을 검증하기 위해 request의 Completed 속성을 무시합니다. 이 메서드는 항상 수정된 completedrequest를 반환합니다. request가 완료되지 않았으면 메서드가 오류를 발생시킵니다. 이 동작을 사용하면 수동으로 완료된 요청이 유효한지 검사할 수 있습니다.
Completed가 설정되지 않은 경우, 이 메서드는 항상 request.Body의 Data를 변환하고 결과를 completedrequest.Body.Payload에 저장합니다. 이때 기존에 Payload에 저장되어 있던 내용을 덮어씁니다. 이는 completedrequest.Body의 Data와 Payload에 모두 값이 들어있음을 의미합니다. 이 동작은 HTTPOptions.SavePayload가 설정되어 있지 않으면 Payload를 저장하지 않는 send의 동작과 다릅니다. 메시지에 다량의 데이터가 포함되어 있는 경우, 메모리 사용량과 변환 시간이 중요한 요인이 될 수 있습니다.
그러나 request.Body에 ContentProvider가 포함되어 있는 경우, complete는 데이터 생성을 위해 해당 제공자를 호출하지 않습니다. completedrequest.Body는 동일한 ContentProvider를 포함합니다.
입력 인수
출력 인수
예제
제한 사항
완료된 요청은
options에서Authenticate속성이 설정되어 있어도 서버나 프록시 인증에 필요할 수 있는 승인 헤더 필드를 추가하지 않습니다. 메시지를 전송하지 않으면 서버를 사용하는 데 무엇이 필요한지 확인하기가 불가능할 수 있습니다. 인증 교환에서 전송된 내용을 보려면send메서드에서 반환된completedrequest인수 또는history인수를 검토하십시오.
팁
동일한 요청 메시지를 반복해서 전송하려면
completedrequest를 전송하십시오. 그렇지 않고,request를 전송하면 MATLAB이 반복해서 메시지의 유효성을 검사하게 됩니다. 또한,target을 URI로 지정하고 동일한options입력 인수도 지정해야 합니다.send메서드가 추가하는 시간 종속적인 헤더 필드(예: Date)는completedrequest를 전송할 때 업데이트되지 않습니다.데이터를 변환하지 않고 메시지를 완료하려면
complete메서드를 호출하기 전에Completed속성을true로 설정하십시오.Completed가 true이고request.Body가MessageBody객체이면complete메서드는request.Body.Payload의 현재 값이 비어 있다 하더라도 그 값이 바람직한 값이라고 가정합니다.이 동작은
send메서드와 다릅니다.request.Body.Payload가 비어 있으면send는Completed가 true인 경우에도 비어 있지 않은Body.Data값을 변환하여 보냅니다.
버전 내역
R2016b에 개발됨