Main Content

이 페이지의 최신 내용은 아직 번역되지 않았습니다. 최신 내용은 영문으로 볼 수 있습니다.

weboptions

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

설명

예제

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

예제

options = weboptions(Name,Value)weboptions 객체의 하나 이상의 속성을 지정합니다.

예제

디폴트 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'

입력 인수

모두 축소

이름-값 쌍의 인수

선택적으로 Name,Value 인수가 쉼표로 구분되어 지정됩니다. 여기서 Name은 인수 이름이고 Value는 대응값입니다. Name은 따옴표 안에 표시해야 합니다. Name1,Value1,...,NameN,ValueN과 같이 여러 개의 이름-값 쌍의 인수를 어떤 순서로든 지정할 수 있습니다.

예: 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 인증 체계에 대한 자세한 내용은 https://tools.ietf.org/html/rfc7617 항목을 참조하십시오. HTTP 다이제스트 액세스 인증에 대한 자세한 내용은 https://tools.ietf.org/html/rfc7616 항목을 참조하십시오.

사용자 인증 비밀번호로, 기본 및/또는 다이제스트 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 요청 헤더에 추가할 문자열로 구성된 mx2 배열 또는 문자형 벡터로 구성된 셀형 배열로 지정됩니다. 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 인수(지정된 경우)를 변환하는 방식을 제어합니다.

미디어 형식의 전체 목록을 보려면 인터넷 미디어 형식을 참조하십시오.

디폴트 값은 '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 파일을 관리하는 데 사용할 수 있는 타사 툴이 있습니다.

기본적으로 weboptions 객체가 지정되지 않은 경우 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에 개발됨