Main Content

matlab.net.http.HTTPOptions 클래스

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

HTTP 메시지 교환을 제어하는 옵션

설명

HTTP 요청 메시지에 대한 옵션을 생성하려면 HTTPOptions 클래스를 사용하십시오. 이 객체를 사용하여 여러 요청 간에 일관된 옵션을 지정할 수 있습니다.

생성

설명

obj = matlab.net.http.HTTPOptions는 디폴트 속성값을 사용하여 HTTP 옵션을 생성합니다.

예제

obj = matlab.net.http.HTTPOptions(Name,Value)는 하나 이상의 이름-값 쌍 인수로 추가 속성이 지정된 HTTP 옵션을 만듭니다. Name은 속성 이름이고 Value는 대응하는 값입니다. Name1,Value1,...,NameN,ValueN과 같이 여러 개의 이름-값 쌍의 인수를 어떤 순서로든 지정할 수 있습니다. 지정되지 않은 속성은 디폴트 값으로 설정됩니다.

속성

모두 확장

인증에 자격 증명이 사용되었는지 여부로, true 또는 false로 지정됩니다.

Authenticate가 true이면 서버나 프록시에서 요청하는 지원되는 인증 메서드를 구현하십시오. 인증은 Credentials 속성 및 MATLAB® 웹 기본 설정에 설정된 프록시 사용자 이름과 비밀번호(있는 경우)를 기반으로 합니다. MATLAB 인증 지원에 대한 자세한 내용은 서버 인증 항목을 참조하십시오.

다음 조건이 하나라도 존재하는 경우 응답 메시지에 서버 인증 질문이나 프록시 인증 질문이 포함됩니다.

  • Authenticate가 false입니다.

  • 이 요청에 적합한 Credentials 속성을 찾을 수 없습니다.

  • 인증이 실패합니다.

특성:

GetAccess
public
SetAccess
public

데이터형: logical

파일 이름으로, 루트 인증서를 포함하는 파일의 이름과 위치를 나타내는 string형 스칼라나 문자형 벡터로 지정됩니다. 이 파일은 PEM(프라이버시 향상 메일) 형식이어야 합니다. 파일 위치는 현재 폴더, MATLAB 경로 내 폴더, 파일에 대한 전체 경로나 상대 경로 중 하나여야 합니다. 이 파일에 포함된 인증서는 HTTPS 연결에 대한 서버 인증서의 유효성을 검사하는 데 사용됩니다. HTTPS 연결의 보안은 이 파일의 무결성에 따라 결정되기 때문에 적절히 보호하십시오. MATLAB은 인증서나 인증서 파일을 관리하지 않지만, PEM 파일을 관리하는 데 사용할 수 있는 타사 툴이 있습니다.

기본적으로 옵션이 지정되지 않은 경우 MATLAB은 시스템에서 제공하는 인증서 저장소를 사용하여 서버 인증서의 유효성을 검사합니다. CertificateFilename'default'로 설정된 경우에도 마찬가지입니다.

CertificateFilename이 비어 있으면('') 서버 인증서의 유효성 검사가 해제됩니다. 이 경우 MATLAB은 서버 인증서의 도메인 이름이 서버의 도메인 이름과 일치하는지만 확인합니다.

'default'를 사용하여 서버 인증서 유효성 검사에 실패한 경우, 시스템 브라우저를 사용하여 연결을 확인하십시오.

연결 문제가 발생하면 다음을 고려하십시오.

  • 서버 인증서가 만료되었거나 해지된 경우, 웹사이트 소유자 또는 서버 관리자에게 문의합니다.

  • 루트 CA 인증서가 없는 경우, 다음 중 하나를 선택할 수 있습니다.

    • CertificateFilename으로 지정된 파일에 루트 CA 인증서를 추가합니다.

    • CertificateFilename을 빈 값('')으로 설정하여 인증서 유효성 검사를 비활성화합니다.

  • 서버 인증서의 도메인 이름과 서버의 도메인 이름이 일치하지 않는 경우, matlab.net.http.RequestMessage 객체를 만들고 matlab.net.http.HTTPOptions.VerifyServerName 속성을 false로 설정하여 이 유효성 검사를 비활성화할 수 있습니다.

참고

위와 같은 옵션은 임시 해결 방법이며, MathWorks는 유효한/올바른 서버 인증서를 사용하여 서버 인증서 유효성 검사 실패의 근본 원인을 해결할 것을 강력히 권장합니다.

특성:

GetAccess
public
SetAccess
public

데이터형: char | string

초기 서버 연결을 기다리는 시간(초)으로, 음이 아닌 실수로 지정됩니다. 프록시가 사용되는 경우 제한 시간은 프록시 연결에 적용됩니다. 그 외의 경우에는 서버 연결에 적용됩니다.

디폴트 값은 10초입니다. 제한 시간이 초과되면 ConnectTimeout가 오류를 발생시킵니다. 제한 시간 기능을 비활성화하려면 ConnectTimeoutInf로 설정하십시오.

ConnectTimeout은 오류를 발생시키기 전에 서버 또는 프록시에서 연결 시도가 완료될 때까지 기다리는 시간을 결정합니다. 이 제한 시간은 완전한 응답을 수신하는 데 걸리는 시간을 제한하지는 않습니다.

프록시를 통해 서버에 요청을 전송하는 경우 ResponseTimeout을 사용하여 대기 시간을 제한하는 것이 좋습니다.

일부 운영 체제에는 시스템에 의해 적용되는 최대 제한 시간이 있습니다. ConnectTimeout 값이 이보다 크더라도 이 최대 제한 시간이 적용됩니다. 예를 들어, Windows® 10에서 이 제한 시간은 21초입니다.

특성:

GetAccess
public
SetAccess
public

서버로부터 ResponseMessage로 수신한 원시 페이로드를 처리하는 방법으로, true 또는 false로 지정됩니다.

ConvertResponse가 true인 경우

  • ContentConsumer가 지정된 경우 uint8형 페이로드가 추가 처리를 위해 ContentConsumer로 전달됩니다.

  • 지정되지 않은 경우 MATLAB은 응답 메시지의 Content-Type을 기반으로 하여 MessageBody.Payload 속성의 페이로드를 MATLAB 데이터로 변환합니다. 변환 규칙은 Data 속성을 참조하십시오. 변환이 성공하면 Data에는 변환된 데이터가 포함되고 Payload는 비어 있습니다.

ConvertResponse가 false인 경우 지정된 ContentConsumer가 모두 무시되고 동작은 Content-Type이 문자 데이터를 지정하는지 여부에 따라 달라집니다.

  • Content-Type에 명시적인 문자 집합 특성이나 디폴트 문자 집합 특성이 있는 경우 페이로드가 추가 처리 없이 텍스트로 변환되어 Data에 저장됩니다.

  • Content-Type이 문자 데이터를 지정하지 않거나 문자 집합이 없고 MATLAB이 Content-Type을 지원하지 않는 경우 Data에 원시 uint8 페이로드가 포함됩니다.

SavePayload 속성도 true로 설정하지 않은 한, 모든 경우에 Payload 속성이 삭제됩니다.

메시지가 인코딩(압축)되었고 다음 중 하나인 경우 ConvertResponse는 무시됩니다.

  • 디코딩이 실패함

  • DecodeResponse 속성이 false임

특성:

GetAccess
public
SetAccess
public

데이터형: logical

네트워크상의 데이터 패킷 간의 대기 시간(초)으로, 음이 아닌 실수로 지정됩니다. 디폴트 값은 Inf로, 제한 시간이 없음을 뜻합니다. 이 대기 시간은 초기 연결이 이루어진 후 적용되며 느릴 수 있는 서버와 통신할 때 유용합니다. 다음 예상 패킷을 보내거나 받으려고 대기하는 동안 이 제한 시간이 초과되면, MATLAB은 연결을 닫고 오류를 발생시킵니다. 이 경우 matlab.net.http.HTTPExceptionHistory 속성을 사용하여 일부 데이터를 받을 수 있습니다.

특성:

GetAccess
public
SetAccess
public

압축된 데이터를 디코딩할지 여부로, true 또는 false로 지정됩니다. 디코딩은 서버가 압축(인코딩)된 데이터를 반환할 때 응답 페이로드를 압축 해제(디코딩)하는 것을 의미합니다. 디코딩은 Content-Type 필드를 기반으로 하는 변환 전에 수행됩니다.

압축 알고리즘을 지정하는 Content-Encoding 필드가 있는 경우 응답이 인코딩됩니다. MATLAB은 콘텐츠 코딩 값 gzip, x-gzip, deflate를 지원합니다. 값 identity는 인코딩되지 않음을 의미하며, 이는 메시지에 Content-Encoding 필드가 없다는 것과 같습니다. MATLAB이 Content-Encoding 유형을 지원하지 않으면 DecodeResponse가 true인 경우에도 디코딩이 수행되지 않습니다.

DecodeResponse가 false이고 페이로드가 인코딩된 경우 결과는 다음과 같습니다.

  • MessageBody.Payload 속성에 인코딩되지 않은 원시 페이로드가 포함됩니다.

  • MessageBody.Data 속성이 빈 상태로 유지됩니다.

  • ConvertResponse 속성 설정에 상관없이 변환이 수행되지 않습니다.

압축된 데이터를 처리할 수 없는 ContentConsumer를 사용 중인 경우, 소비자 사용을 막도록 ConvertResponse 역시 false로 설정하지 않는 한, 압축된 응답에 대해 이 값을 false로 설정하지 마십시오. 압축된 데이터를 처리할 수 있는 MATLAB의 유일한 소비자는 FileConsumerBinaryConsumer입니다.

특성:

GetAccess
public
SetAccess
public

데이터형: logical

인증 자격 증명으로, 하나 이상의 matlab.net.http.Credentials 객체로 지정됩니다. 디폴트 값은 디폴트 matlab.net.http.Credentials 객체입니다. Windows에서 Kerberos, NTLM 같은 체계에 대한 인증을 허용하려면 디폴트 Credentials 객체를 사용하십시오. 이러한 체계에서는 사용자 이름이나 비밀번호를 지정할 필요가 없습니다.

CredentialsAuthenticate 속성이 true인 경우에만 사용됩니다. 인증이 발생하려면 적어도 하나의 Credentials 객체를 지정해야 합니다. Credentials를 빈 값으로 설정하면 어떠한 인증도 발생하지 않습니다.

한 세션 동안 같은 서버에 여러 번 액세스하는 경우 성능을 극대화하려면 각 요청에 대해 동일한 Credentials 벡터나 동일한 HTTPOptions 객체를 지정해야 합니다. Credentials는 캐시된 정보를 포함하여 후속 인증 속도를 높입니다.

프록시에 사용할 Credentials를 제공하고 그러한 Credentials를 기본 설정 창의 웹 기본 설정에 지정된 다른 사용자 이름과 비밀번호를 재정의하게 하려면, 이 HTTPOptions 객체의 ProxyURI 속성에 프록시의 호스트와 포트를 지정하거나 기본 설정 창에서 인증과 함께 프록시 사용 옵션의 선택을 해제하십시오.

특성:

GetAccess
public
SetAccess
public

처음 연결된 후 서버에 연결된 상태로 유지되는 시간(단위: 초)으로, 0 또는 Inf로 지정됩니다. 동일한 연결에서 여러 개의 메시지를 연속으로 전송할 수 있도록 하려면 이 속성을 사용하십시오. Inf 값(디폴트 값)은 서버가 작동하는 한 연결을 계속 유지하여 연결을 지속시킵니다. 값 0은 각 메시지 전송 후 연결을 종료합니다. 다른 값은 지원되지 않습니다.

KeepAliveTimeout 속성은 작업의 성공 여부에 영향을 미치지 않습니다. MATLAB은 다른 제한 시간이 초과되지 않는 한, 항상 서버로부터 필요한 응답을 받을 수 있도록 충분히 연결 상태를 유지합니다. 그러나 값 0을 설정한 상태에서 여러 개의 짧은 메시지를 동일한 서버에 전송할 경우 성능이 심각하게 떨어질 수 있습니다.

특성:

GetAccess
public
SetAccess
public

허용되는 리디렉션 횟수로, 주어진 요청에 대해 정수로 지정됩니다. 디폴트 리디렉션 횟수는 20입니다. 리디렉션을 비활성화하려면 0으로 설정하십시오. 무제한 리디렉션을 허용하려면 Inf로 설정하십시오.

MaxRedirects가 0이 아니면 각 리디렉션 응답에서 서버로부터 수신된 쿠키가 리디렉션된 메시지로 복사됩니다. MaxRedirects 이후에는, 응답 메시지에 다음 리디렉션 메시지가 포함됩니다.

특성:

GetAccess
public
SetAccess
public

진행률 모니터 핸들러로, matlab.net.http.ProgressMonitor 객체에 대한 함수 핸들로 지정됩니다. UseProgressMonitor가 true이면 MATLAB이 ProgressMonitor 함수를 호출하여 전송 진행률을 보고합니다. UseProgressMonitor가 false이거나 ProgressMonitorFcn이 비어 있으면 진행률이 보고되지 않습니다.

특성:

GetAccess
public
SetAccess
public

데이터형: function_handle

프록시 서버 주소로, matlab.net.URI 객체나 host:port 또는 //host:port 형식의 string형으로 지정됩니다.

ProxyURIUseProxy 속성이 true인 경우에만 사용됩니다. ProxyURI는 MATLAB 웹 기본 설정에 지정된 프록시와 Windows 시스템 설정에 지정된 프록시를 재정의합니다.

특성:

GetAccess
public
SetAccess
public

요청의 마지막 패킷을 전송한 후 서버로부터 초기 응답(헤더)을 수신하기 위해 기다리는 시간(초)으로, 음이 아닌 실수로 지정됩니다. 디폴트 값은 Inf로, 제한 시간이 없음을 뜻합니다. 이 제한 시간이 초과되면 MATLAB은 연결을 닫고 오류를 발생시킵니다.

ConnectTimeout은 프록시 연결 시간에만 적용되기 때문에, 프록시를 통해 서버에 요청을 전송할 때의 대기 시간을 제한하려면 ResponseTimeout을 사용하십시오.

ResponseTimeoutweboptions로 설정되는 Timeout 속성과 동일합니다.

특성:

GetAccess
public
SetAccess
public

페이로드가 저장되었는지 여부로, true 또는 false로 지정됩니다. 페이로드는 서버로부터 수신되거나 서버로 전송되는 원시 바이트이며 MessageBody.Payload 속성에 저장됩니다.

요청 메시지에서, SavePayloadtrue로 설정하면 데이터 변환 후 페이로드가 저장됩니다. 응답 메시지에서는 변환이 수행되기 전에 바이트가 저장됩니다.

SavePayload를 디버그 툴로 사용하십시오. 예를 들어, 서버가 요청의 본문을 처리할 수 없거나 응답 본문을 MATLAB 유형으로 변환하는 중에 오류가 발생했다고 가정합니다. 페이로드의 크기는 변환된 데이터의 크기 이상이므로 SavePayloadtrue로 설정하면 상당한 양의 메모리가 소비될 수 있습니다.

변환을 수행하지 않고 응답 페이로드를 검색하려면 ConvertResponse 속성을 false로 설정하고 MessageBody.Data를 대신 읽어 들여야 합니다.

메시지 처리 중에 HTTPException이 발생하면 해당 실패 시점까지 수신된 페이로드는 HTTPException.History(end).Response.Body.Payload에 저장됩니다.

RequestMessage.BodyContentProvider 객체인 경우, MATLAB은 제공자의 변환된 데이터를 Body.Payload에 저장합니다.

특성:

GetAccess
public
SetAccess
public

데이터형: logical

진행률 표시 여부로, true 또는 false로 지정됩니다. ProgressMonitorFcn 속성으로 지정된 함수를 사용하여 전송 진행률을 보고하려면 UseProgressMonitortrue로 설정하십시오.

특성:

GetAccess
public
SetAccess
public

데이터형: logical

프록시 사용 여부로, true 또는 false로 지정됩니다.

UseProxy가 true인 경우 MATLAB은 다음 프록시 중 첫 번째를 선택합니다.

  • ProxyURI 속성값(있는 경우).

  • MATLAB 웹 기본 설정에 지정된 프록시(있는 경우).

  • 시스템 기본 설정에 지정된 프록시(Windows만 해당).

다음 중 하나라도 참인 경우 모든 요청이 프록시 없이 대상 URI로 직접 전송됩니다.

  • UseProxy가 false입니다.

  • UseProxy가 true이지만 ProxyURI가 비어 있고 기본 설정에 지정된 프록시가 없습니다.

MATLAB은 UseProxy가 true인 경우 자동으로 메시지를 프록시로 우회시킵니다.

특성:

GetAccess
public
SetAccess
public

데이터형: logical

서버 이름과 인증서의 일치 여부로, true 또는 false로 지정됩니다.

https 프로토콜을 사용하는 보안 연결에서 MATLAB은 인증서에 있는 서버의 이름이 요청 URI나 최신 리디렉션 요청 URI에 있는 Host 속성과 일치함을 확인합니다. 이 검증을 통해 원하는 서버와 통신할 수 있습니다. 서버 인증서가 서버 액세스에 사용된 URI와 일치하지 않는 경우 검증을 비활성화하려면 이 속성을 false로 설정하십시오. 일례로, IP 주소나 "localhost"를 사용하여 서버에 액세스하려 하고, 원하는 서버와 바로 통신해도 문제가 없다고 확신하는 경우 이와 같은 조치를 취할 수 있습니다.

특성:

GetAccess
public
SetAccess
public

데이터형: logical

예제

모두 축소

연결 제한 시간을 20초로 늘립니다.

변수 url에 지정된 서버로 전송되는 변수 request에 지정된 요청 메시지의 디폴트 제한 시간 옵션을 변경합니다.

options = matlab.net.http.HTTPOptions('ConnectTimeout',20);
response = request.send(url,options);

버전 내역

R2016b에 개발됨