Main Content

이 번역 페이지는 최신 내용을 담고 있지 않습니다. 최신 내용을 영문으로 보려면 여기를 클릭하십시오.

weboptions

RESTful 웹 서비스에 대한 파라미터 지정

설명

예제

options = weboptions는 디폴트 weboptions 객체를 반환합니다. 이 객체를 통해 웹 서비스 요청을 위한 파라미터를 지정할 수 있습니다. weboptions 객체는 webread, websave, webwrite 함수에 대한 선택적 입력 인수일 수 있습니다. weboptions 함수에서 지원되지 않는 옵션에 대한 내용은 HTTP를 사용하여 MATLAB에서 웹 서비스 호출하기 항목을 참조하십시오.

예제

options = weboptions(Name,Value)weboptions 객체의 하나 이상의 속성을 지정합니다. 코드에서 민감한 정보를 제거하려면 loadenv 항목을 참조하십시오.

예제

디폴트 weboptions 객체

디폴트 weboptions 객체를 만들고 그 속성의 디폴트 값을 표시합니다.

options = weboptions
options = 

  weboptions with properties:

      CharacterEncoding: 'auto'
              UserAgent: 'MATLAB 9.7.0.1112323 (R2019b)'
                Timeout: 5
               Username: ''
               Password: ''
                KeyName: ''
               KeyValue: ''
            ContentType: 'auto'
          ContentReader: []
              MediaType: 'auto'
          RequestMethod: 'auto'
            ArrayFormat: 'csv'
           HeaderFields: []
    CertificateFilename: 'default'

weboptions 객체의 사용자 이름과 비밀번호

weboptions 객체에 웹 서비스 사용자 이름과 비밀번호를 설정합니다. 웹 서비스에 인증이 필요한 경우 이 객체를 webread, websave 또는 webwrite에 대한 입력 인수로 사용할 수 있습니다.

options = weboptions('Username','jdoe','Password','mypassword');

weboptions 객체를 표시해 보면 비밀번호가 잘 안 보입니다. 그러나 객체는 비밀번호를 일반 텍스트로 저장하고 있습니다. weboptions.Password 속성에서 비밀번호를 검색할 수 있습니다.

options.Password
ans = 
'mypassword'

입력 인수

모두 축소

이름-값 인수

선택적 인수 쌍을 Name1=Value1,...,NameN=ValueN으로 지정합니다. 여기서 Name은 인수 이름이고 Value는 대응값입니다. 이름-값 인수는 다른 인수 뒤에 와야 하지만, 인수 쌍의 순서는 상관없습니다.

R2021a 이전 릴리스에서는 쉼표를 사용하여 각 이름과 값을 구분하고 Name을 따옴표로 묶으십시오.

예: weboptions('Timeout',60)은 제한 시간 연결 길이를 60초로 설정하는 weboptions 객체를 만듭니다.

웹 콘텐츠를 문자로 변환하기 위해 webread에 사용되는 인코딩으로, string형 스칼라 또는 문자형 벡터로 지정됩니다. 일반적인 인코딩에는 'US-ASCII', 'UTF-8', 'latin1', 'Shift_JIS', 'ISO-8859-1'이 포함됩니다. 디폴트 인코딩은 콘텐츠 유형에 따라 달라집니다. 텍스트 모양이 일그러진 경우 webread 인코딩이 문서에서 사용된 인코딩과 다를 수 있습니다. CharacterEncodingUTF-8로 설정해 보십시오.

사용자 에이전트 ID로, 클라이언트 사용자 에이전트를 나타내는 string형 스칼라 또는 문자형 벡터로 지정됩니다.

제한 시간 연결 기간(단위: 초)으로, 양의 숫자형 스칼라로 지정됩니다. 이 값은 마지막 요청 패킷을 보낸 후 서버로부터 최초 응답(헤더)을 수신 대기하는 시간(초)입니다. Timeoutmatlab.net.http.HTTPOptions 클래스의 ResponseTimeout 속성과 동일합니다. 최댓값은 2147.483647초입니다. Inf를 사용하여 최댓값을 설정합니다.

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

사용자 ID로, 기본 및/또는 다이제스트 HTTP 인증(암호화 없음)에 사용되며 string형 스칼라 또는 문자형 벡터로 지정됩니다. 기본 HTTP 인증 체계에 대한 자세한 내용은 IETF®(Internet Engineering Task Force) 웹 사이트의 RFC 7617을 참조하십시오. HTTP 다이제스트 액세스 인증에 대한 자세한 내용은 RFC 7616을 참조하십시오.

사용자 인증 비밀번호로, 기본 및/또는 다이제스트 HTTP 인증(암호화 없음)에 사용되며 string형 스칼라 또는 문자형 벡터로 지정됩니다. Password 설정으로 weboptions 객체를 표시할 경우, ‘*’가 포함된 문자형 벡터로 값이 표시됩니다. 그러나 이 객체는 Password의 값을 일반 텍스트로 저장합니다.

키의 이름으로, string형 스칼라 또는 문자형 벡터로 지정됩니다. KeyName은 HTTP 요청 헤더에 더해질 추가 이름입니다. 예를 들어, KeyName은 웹 서비스 API 키 이름일 수 있습니다.

예: weboptions('KeyName','duration','KeyValue',7)은 웹 서비스에 의해 정의된 키 이름 duration이 포함된 weboptions 객체를 만듭니다.

키의 값으로, HTTP 요청 헤더에 추가할 string형 스칼라, 문자형 벡터 또는 숫자형 값이나 논리값으로 지정됩니다. KeyValueKeyName으로 지정된 키의 값입니다.

예: weboptions('KeyName','duration','KeyValue',7)은 키 이름 duration과 쌍을 이루는 키 값 7이 포함된 weboptions 객체를 만듭니다.

헤더 필드의 이름과 값으로, HTTP 요청 헤더에 추가할 문자열로 구성된 m×2 배열 또는 문자형 벡터로 구성된 셀형 배열로 지정됩니다. HeaderFields{i,1}은 필드의 이름이고 HeaderFields{i,2}는 그 값입니다.

이러한 헤더 필드는 webread, webwrite 또는 websave에 의해 자동으로 추가된 필드에 추가되거나 이를 대체합니다. 일반적으로는 이러한 필드가 추가되지만 이러한 필드 중 하나의 이름이 자동으로 추가될 필드 중 하나와 대/소문자 구분 없이 일치하고, 해당 필드가 여러 개의 값을 지원하지 않을 경우(예: Content-Type), 사용자가 지정하는 값이 대신 사용됩니다. 요청을 성공적으로 전송하기 위해 반드시 있어야 하는 값의 필드 유형(예: Connection 및 Content-Length)은 재정의할 수 없습니다.

예: weboptions('HeaderFields',{'Content-Length' '78';'Content-Type' 'application/json'})은 두 개의 헤더 필드(값이 78Content-Length, 값이 application/jsonContent-Type)가 포함된 weboptions 객체를 만듭니다.

콘텐츠 유형으로, string형 스칼라 또는 문자형 벡터로 지정됩니다. ContentType을 사용하여 서버가 데이터를 우선적으로 특정 형식으로 반환하도록 요청합니다. webread는 이 값을 사용하여 응답을 MATLAB® 유형으로 변환합니다. 서버는 가능한 경우 이 콘텐츠 유형을 반환하지만, 반드시 그래야 하는 것은 아닙니다.

ContentType 지정자

출력 유형

'auto'(디폴트 값)

출력 유형은 서버가 지정한 콘텐츠 유형을 기반으로 자동으로 결정됩니다.

'text'

아래 콘텐츠 유형에 대한 문자형 벡터:

text/plain
text/html
text/xml
application/xml
application/javascript
application/x-javascript
application/x-www-form-urlencoded

웹 서비스가 .m 확장자를 가지는 MATLAB 파일을 반환하는 경우, 함수는 파일의 내용을 문자형 벡터로 반환합니다.

'image'

image/format 콘텐츠에 대한 숫자형 행렬 또는 논리형 행렬. 첫 번째 출력 인수가 인덱스 이미지인 경우, 두 번째 출력 인수는 컬러맵이고 세 번째 출력 인수는 알파 채널입니다.

지원되는 이미지 형식을 보려면 가져오기 및 내보내기에 지원되는 파일 형식 항목을 참조하십시오.

'audio'

숫자형 스칼라 샘플링 레이트를 두 번째 출력 인수로 포함하는 audio/format 콘텐츠에 대한 숫자형 행렬.

지원되는 오디오 형식을 보려면 가져오기 및 내보내기에 지원되는 파일 형식 항목을 참조하십시오.

'binary'

이진 콘텐츠(즉, char형으로 취급되지 않는 콘텐츠)에 대한 uint8형 열 벡터.

'table'

스프레드시트 및 CSV(text/csv) 콘텐츠에 대한 스칼라 테이블 객체.

'json'

application/json 콘텐츠에 대한 char형, 숫자형, 논리형, 구조체 또는 셀형 배열.

'xmldom'

text/xml 또는 application/xml 콘텐츠에 대한 Java® DOM(문서 객체 모델) 노드. 지정하지 않는 경우, 함수는 XML 콘텐츠를 문자형 벡터로 반환합니다.

'raw'

'text', 'xmldom', 'json' 콘텐츠에 대한 char 열 벡터. 함수는 그 밖의 콘텐츠 유형을 uint8형 열 벡터로 반환합니다.

예: weboptions('ContentType','text')webread가 텍스트, JSON 또는 XML 콘텐츠를 문자형 벡터로 반환하도록 지시하는 weboptions 객체를 만듭니다.

콘텐츠 리더로, 함수 핸들로 지정됩니다. 지정된 ContentReader를 갖는 weboptions 객체를 만들고, 이 객체를 webread에 입력 인수로 전달할 수 있습니다. 그러면 webread는 웹 서비스에서 데이터를 다운로드하고 함수 핸들로 지정된 함수를 사용하여 데이터를 읽어옵니다. ContentReader가 지정된 경우 webreadContentType을 무시합니다.

예: weboptions('ContentReader',@readtable)webreadreadtable을 사용하여 콘텐츠를 테이블로 읽어오도록 지시하는 weboptions 객체를 만듭니다.

미디어 형식으로, string형 스칼라, 문자형 벡터 또는 matlab.net.http.MediaType 객체로 지정됩니다. MediaTypewebwrite가 웹 서비스에 전송하는 데이터형을 지정합니다. 이는 MATLAB이 서버에 지정하는 콘텐츠 유형을 지정하며, webwrite data 인수(지정된 경우)를 변환하는 방식을 제어합니다. 자세한 내용은 IETF(Internet Engineering Task Force) 웹 사이트의 RFC 6838 Media Type Specifications and Registration Procedures를 참조하십시오.

디폴트 값은 'auto'이며, MATLAB이 webwrite에 대한 입력값을 기준으로 유형을 선택함을 나타냅니다. PostName/PostValue 인수 쌍을 사용할 경우 MATLAB은 'application/x-www-form-urlencoded'를 사용하여 쌍을 전송합니다. data 인수가 string형 스칼라 또는 문자형 벡터라면 MATLAB은 해당 인수를 form-encoded 문자열로 가정하고 'application/x-www-form-urlencoded'를 그대로 전송합니다. data가 다른 유형이라면 MATLAB은 jsonencode를 사용하여 해당 유형을 JSON으로 변환하고 콘텐츠 유형 'application/json'을 사용합니다.

'json' 또는 'javascript'가 포함된 MediaType을 지정하고 data가 문자형 벡터인 경우, 해당 벡터는 그대로 전송됩니다. string형 스칼라를 비롯하여 다른 모든 유형은 jsonencode를 사용하여 변환됩니다.

'application/x-www-form-urlencoded'를 지정하면 PostName/PostValue 쌍이 form-encoded로서 전송됩니다. data(있는 경우)는 string형 또는 문자형 벡터여야 그대로 전송될 수 있습니다.

'xml'을 포함한 MediaType을 지정하고, data가 문서 객체 모델(DOM) 객체 즉, Java org.apache.xerces.dom.DocumentImpl인 경우, 해당 객체는 XML로 변환됩니다. data(있는 경우)는 string형 또는 문자형 벡터여야 그대로 전송될 수 있습니다.

다른 MediaType을 지정하고 data가 string형 또는 문자형 벡터인 경우, weboptions는 해당 값을 그대로 전송합니다.

PostName/PostValue 쌍은 MediaType'auto''application/x-www-form-urlencoded'에만 허용되며, 문자형 벡터는 MediaType에 관계없이 항상 그대로 전송됩니다.

MediaType 문자열 내에 세미콜론으로 구분된 name=value를 지정할 수 있습니다(예: 'application/json; odata=verbose'). 일부 서버에서는 요청의 Content-Type 헤더 필드의 일부로서 이 형식을 요구합니다.

예: weboptions('MediaType','application/json')webwrite가 문자형 벡터 데이터를 JSON으로 인코딩하여 웹 서비스에 게시하도록 지시하는 weboptions 객체를 만듭니다.

HTTP 요청 메서드로, 다음 값 중 하나인 string형 스칼라, 문자형 벡터 또는 matlab.net.http.RequestMethod 열거형으로 지정됩니다.

  • 'auto'

    • webreadwebsave는 HTTP GET 메서드를 사용합니다.

    • webwrite는 HTTP POST 메서드를 사용합니다.

  • 'get' - webread 함수와 websave 함수에 사용합니다.

  • 'post' - webread 함수, webwrite 함수, websave 함수에 사용합니다.

  • 'put' - webread 함수, webwrite 함수, websave 함수에 사용합니다.

  • 'delete' - webread 함수, webwrite 함수, websave 함수에 사용합니다.

  • 'patch' - webread 함수, webwrite 함수, websave 함수에 사용합니다.

webread 함수와 websave 함수는 RequestMethod에 관계없이 쿼리를 URL에 삽입합니다. webwriteRequestMethod에 관계없이 쿼리를 데이터에 삽입합니다.

예: weboptions('RequestMethod','post')webread, websave 또는 webwrite가 웹 서비스의 HTTP POST 메서드를 사용하도록 지시하는 weboptions 객체를 만듭니다.

여러 개의 값을 나타내는 쿼리 또는 게시 값을 form-encode하기 위한 형식으로, 'csv', 'json', 'repeating' 또는 'php'로 지정됩니다. 쿼리 또는 게시 값이 다음에 해당하는 경우 여러 개의 값이 포함됩니다.

  • 숫자형, 논리형 또는 datetime형 벡터

  • 둘 이상의 행으로 구성된 문자형 배열

  • 각 요소가 숫자형, 논리형 또는 datetime형 스칼라이거나 행이 한 개 있는 문자형 벡터인 셀형 벡터

다른 데이터형이나 차원은 지원되지 않습니다.

다음 표에서는 각 형식, 쿼리 파라미터 'parameter', 쿼리 값 [1 2 3]에 대한 form-encoded 변환을 보여줍니다. 사용할 변환은 웹 서비스에 의해 지정됩니다.

ArrayFormat 지정자

form-encoded 변환

'csv'(디폴트 값)

parameter=1,2,3

'json'

parameter=[1,2,3]

'repeating'

parameter=1&parameter=2&parameter=3

'php'

parameter[]=1&parameter[]=2&parameter[]=3

스칼라를 단일 요소 배열로서 'json' 또는 'php' 지정자로 인코딩하려면 스칼라를 단일 요소 셀형 배열에 배치하십시오.

예: weboptions('ArrayFormat','repeating')webread, websave 또는 webwrite가 여러 개의 값을 가진 쿼리나 게시 값을 반복 쿼리 파라미터로서 form-encode하도록 지시하는 weboptions 객체를 만듭니다.

파일 이름으로, 루트 인증서를 포함하는 파일의 이름과 위치를 나타내는 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

버전 내역

R2014b에 개발됨