Main Content

complete

클래스: matlab.net.http.RequestMessage
패키지: matlab.net.http

HTTP 요청 메시지를 전송하지 않고 유효성 검사 후 완료

설명

[completedrequest,target] = complete(request,uri)RequestMessage.send 메서드와 같이 메시지 헤더 필드를 추가하고 이에 대한 유효성을 검사한 후 데이터를 변환하지만, 메시지를 전송하지는 않습니다. complete는 디폴트 HTTPOptions 객체가 요청을 완료하고 유효성을 검사하는 방식을 결정한다고 가정합니다.

디버그 용도로 complete 메서드를 사용하여 요청 메시지의 내용을 검토할 수 있습니다.

이 메서드는 Header 속성과 RequestLine 속성을 채우고 유효성을 검증하기 위해 requestCompleted 속성을 무시합니다. 이 메서드는 항상 수정된 completedrequest를 반환합니다. request가 완료되지 않았으면 메서드가 오류를 발생시킵니다. 이 동작을 사용하면 수동으로 완료된 요청이 유효한지 검사할 수 있습니다.

Completed가 설정되지 않은 경우, 이 메서드는 항상 request.BodyData를 변환하고 결과를 completedrequest.Body.Payload에 저장합니다. 이때 기존에 Payload에 저장되어 있던 내용을 덮어씁니다. 이는 completedrequest.BodyDataPayload에 모두 값이 들어있음을 의미합니다. 이 동작은 HTTPOptions.SavePayload가 설정되어 있지 않으면 Payload를 저장하지 않는 send의 동작과 다릅니다. 메시지에 다량의 데이터가 포함되어 있는 경우, 메모리 사용량과 변환 시간이 중요한 요인이 될 수 있습니다.

그러나 request.BodyContentProvider가 포함되어 있는 경우, complete는 데이터 생성을 위해 해당 제공자를 호출하지 않습니다. completedrequest.Body는 동일한 ContentProvider를 포함합니다.

예제

[completedrequest,target] = complete(request,uri,options)는 요청 메시지에 대해 유효성을 검사하고 완료할 수 있는 추가 옵션을 제공합니다.

반복적인 유효성 검사의 비용이 발생하는 것을 피하기 위해 completedrequest를 보내려면 동일한 options를 사용하여 uri가 아닌 target으로 보내십시오. send 메서드에 의해 추가되는 Date와 같이 시간 종속적인 헤더 필드는 completedrequest를 사용하여 다시 보내도 업데이트되지 않습니다.

입력 인수

모두 확장

요청 메시지로, matlab.net.http.RequestMessage 객체로 지정됩니다.

메시지 대상으로, matlab.net.URI 객체로 지정되거나 생성자에 허용되는 string형이나 문자형 벡터로 지정됩니다.

요청 메시지와 응답 메시지를 처리하기 위한 추가 옵션으로, matlab.net.http.HTTPOptions 객체로 지정됩니다.

출력 인수

모두 확장

유효성 검사를 마치고 완료된 요청으로, matlab.net.http.RequestMessage 객체로 반환됩니다. Completed 속성은 true를 갖습니다.

완료된 URI로, matlab.net.URI 객체로 반환됩니다.

예제

모두 확장

가상 웹 사이트에 대한 요청 메시지를 생성합니다. 그런 다음, 요청을 전송하지 않고 유효성을 검사한 후 완료합니다.

request = matlab.net.http.RequestMessage();
url = 'myschool.edu/campus.jpg';
options = matlab.net.http.HTTPOptions('SavePayload',true);
[request,url] = complete(request,url,options);
show(request)
GET /campus.jpg HTTP/1.1
Host: myschool.edu
User-Agent: MATLAB/9.0.0.366741 (R2016b)
Date: Wed, 13 Jul 2016 17:21:08 GMT
Connection: close

MATLAB®은 시스템에 맞는 User-Agent 값과 Date 값을 표시합니다.

갱신된 URL을 표시합니다.

string(url)
ans = http://myschool.edu/campus.jpg

제한 사항

  • 완료된 요청은 options에서 Authenticate 속성이 설정되어 있어도 서버나 프록시 인증에 필요할 수 있는 승인 헤더 필드를 추가하지 않습니다. 메시지를 전송하지 않으면 서버를 사용하는 데 무엇이 필요한지 확인하기가 불가능할 수 있습니다. 인증 교환에서 전송된 내용을 보려면 send 메서드에서 반환된 completedrequest 인수 또는 history 인수를 검토하십시오.

  • 동일한 요청 메시지를 반복해서 전송하려면 completedrequest를 전송하십시오. 그렇지 않고, request를 전송하면 MATLAB이 반복해서 메시지의 유효성을 검사하게 됩니다. 또한, target을 URI로 지정하고 동일한 options 입력 인수도 지정해야 합니다. send 메서드가 추가하는 시간 종속적인 헤더 필드(예: Date)는 completedrequest를 전송할 때 업데이트되지 않습니다.

  • 데이터를 변환하지 않고 메시지를 완료하려면 complete 메서드를 호출하기 전에 Completed 속성을 true로 설정하십시오. Completed가 true이고 request.BodyMessageBody 객체이면 complete 메서드는 request.Body.Payload의 현재 값이 비어 있다 하더라도 그 값이 바람직한 값이라고 가정합니다.

    이 동작은 send 메서드와 다릅니다. request.Body.Payload가 비어 있으면 sendCompleted가 true인 경우에도 비어 있지 않은 Body.Data 값을 변환하여 보냅니다.

버전 내역

R2016b에 개발됨