Main Content

matlab.net.URI 클래스

패키지: matlab.net

URI(Uniform Resource Identifier)

설명

matlab.net.URI 클래스는 웹 주소나 URL과 같은 인터넷 URI(Uniform Resource Identifier)를 생성합니다. 인터넷 URI는 성분으로 나누어지는 문자열입니다. 각 성분은 URI 클래스의 속성으로 표현됩니다. 다음 텍스트는 속성과 관련 문장 부호를 보여주며, 이해를 돕기 위해 공백으로 구분되어 있습니다. 이러한 공백은 인코딩된 URI에는 나타나지 않습니다. 관련 문장 부호는 속성값의 일부가 아닙니다.

Scheme: //Authority /Path(1) /Path(2) ... /Path(end) ?Query #Fragment

여기서 Authority는 다음 속성을 포함합니다.

UserInfo@ Host :Port

matlab.net.URIstring 메서드나 char 메서드를 사용하여 인터넷 URI를 생성할 수 있습니다. 이러한 메서드는 문장 부호를 비어 있지 않은 속성에 추가하고 예약된 문자를 이스케이프 처리하여 속성을 인코딩합니다.

모든 속성은 선택 사항입니다. 그러나, 각 활용 사례마다 설정해야 하는 속성이 다를 수 있습니다.

출력 문자열에서 속성과 그 문장 부호를 제거하려면 속성값을 []로 설정하십시오.

생성

설명

obj = matlab.net.URI는 빈 URI를 생성합니다.

예제

obj = matlab.net.URI(destination)destination으로 지정된 URI를 생성합니다.

예제

obj = matlab.net.URI(destination,queryVector)Query 속성을 queryVector로 설정합니다. Query 값이 destination에 이미 지정되어 있는 모든 쿼리 파라미터에 추가됩니다.

obj = matlab.net.URI(destination,queryName,queryValue)는 하나 이상의 queryName,queryValue 파라미터를 Query 속성에 추가합니다.

obj = matlab.net.URI(destination,queryVector,queryName,queryValue)queryVector 파라미터와 queryName,queryValue 파라미터를 Query 속성에 추가합니다.

obj = matlab.net.URI(___,format)은 배열이 queryValue 인수에 나타날 때 출력값 형식을 지정합니다. 위에 열거된 구문의 모든 입력 인수와 사용할 수 있습니다.

obj = matlab.net.URI(___,'literal')destination이 이미 인코딩되었음을 나타냅니다. 브라우저의 주소 표시줄 등에서 이미 인코딩된 URI를 복사해서 붙여넣는 경우 이 옵션을 사용합니다. 이 URI의 속성을 직접 읽으면 디코딩된 버전이 보입니다. 'literal' 옵션은 사용자가 부적절한 URI를 생성하지 못하게 합니다. '%' 문자의 재인코딩도 허용되지 않습니다. 항상 인코딩되어야 하는 문자(예: Host 또는 Path'\', ' ' 등)는 계속해서 퍼센트로 인코딩됩니다.

이 옵션은 Query(matlab.net.QueryParameter) 인수에는 영향을 주지 않습니다.

입력 인수

모두 확장

대상으로, URI나 URI의 일부를 지정하는 string형 또는 문자형 벡터로 지정되거나 matlab.net.URI 객체로 지정됩니다. destinationmatlab.net.URI 객체인 경우 destination은 유일한 인수여야 합니다.

예: https://user:pwd@www.mathworks.com:8000/product/matlab?abc=def&this=that#xyz 모든 속성

예: Host 속성 및 Scheme 속성: https://www.mathworks.com

예: Host만: //www.mathworks.com

예: Host 및 Path: //www.mathworks.com/products/matlab/

예: Path만: products/matlab/live-editor

예: Host 및 Query: //www.mathworks.com/search/site_search.html?q=weboptions

쿼리 속성으로, matlab.net.QueryParameter 객체로 구성된 벡터로 지정됩니다. 쿼리의 형식은 다음과 같습니다.

name1=value1&name2=value2&name3=value3

예: matlab.net.QueryParameter('hl','en','ie','utf8','num',50)

쿼리 이름으로, string형이나 문자형 벡터로 지정됩니다. 웹 서비스는 요청의 일부로 받는 queryName,queryValue 쌍을 정의합니다. queryName에 포함된 문자는 인코딩하지 마십시오.

쿼리 값으로, 문자형 배열이나 숫자형, 논리형, datetime형 값 또는 배열로 지정됩니다. queryValue에 포함된 문자는 인코딩하지 마십시오.

출력 형식으로, 배열이 queryValue 인수에 나타날 때 matlab.net.ArrayFormat 객체로 지정됩니다. 허용되는 값은 ArrayFormat을 참조하십시오.

format 인수는 queryVector 인수에 포함된 값의 형식에는 영향을 미치지 않습니다.

속성

모두 확장

URI 체계로, 프로토콜이라고도 하며 :// 문자 앞에 string형이나 문자형 벡터로 지정됩니다. Scheme은 항상 문자열을 반환합니다. 비어 있지 않은 경우, Schemehttphttps여야 합니다. 그러나, 이 규칙은 강제로 적용되지는 않습니다. MATLAB®file과 같은 다른 체계를 지원하지 않습니다.

예: http

예: https

사용자 정보로, string형이나 문자형 벡터로 지정됩니다. UserInfoHost 속성 앞에 오며, UserInfo 다음에는 @ 문자가 옵니다. string 메서드는 특수 문자를 퍼센트로 인코딩합니다. UserInfo를 설정할 경우 값을 인코딩하지 마십시오.

예: name

예: name:password

호스트 이름으로, string형이나 문자형 벡터로 지정됩니다. 이 값은 DNS(Domain Name System) 형식이거나 IPv4(인터넷 프로토콜 버전 4) 주소 또는 IPv6(인터넷 프로토콜 버전 6) 주소입니다. string 메서드는 URI의 호스트 부분에 허용되지 않는 문자를 퍼센트로 인코딩합니다. 마침표(.)는 변경되지 않습니다. Host를 설정할 경우 값을 인코딩하지 마십시오.

예: www.mathworks.com

예: 2222:7344:0db8:0000:0100:8a2e:0370:85a3 IPv6 주소

포트 번호로, uint16으로 저장된 0–65535 범위 내 숫자를 나타내는 숫자나 string형 또는 문자형 벡터로 지정됩니다.

예: 8000

경로 세그먼트로, string형, string형 벡터, 문자형 벡터 또는 문자형 벡터로 구성된 셀형 배열로 지정됩니다. 결과는 항상 string형으로 구성된 벡터입니다. 인코딩된 경로의 값을 보려면 EncodedPath 속성을 사용하십시오.

URI의 경로는 EncodedPath 속성으로 지정됩니다. EncodedPath/ 문자로 구분되는 일련의 세그먼트이며, 여기서 이러한 세그먼트 각각은 Path의 멤버입니다.

Path(1)/Path(2)/Path(3)/.../Path(end)

/ 문자는 Path에 나타나지 않지만, EncodedPath에는 포함됩니다. 예를 들면 다음과 같습니다.

uri = matlab.net.URI;
uri.Path = {'products' 'matlab'};
P = uri.Path
P = 
    "products"    "matlab"
EP = uri.EncodedPath
EP = products/matlab

Path/ 문자를 포함하는 문자형 벡터나 string형 스칼라로 설정하면 값이 / 문자 위치에서 세그먼트로 분할됩니다. 이 결과는 string형으로 구성된 벡터나 문자형 벡터로 구성된 셀형 배열을 지정하는 것과 동일합니다.

uri.Path = 'products/matlab';
P = uri.Path
P = 
    "products"    "matlab"

Path의 세그먼트 개수는 EncodedPath에 있는 / 문자 개수보다 항상 하나 더 많습니다. 세그먼트는 빈 문자열일 수 있습니다. Path(1)이 빈 문자열이면 EncodedPath/로 시작합니다. Path(end)가 빈 문자열이면 EncodedPath/로 끝납니다.

uri.Path = '/products/matlab/';
EP = uri.EncodedPath
EP = /products/matlab/

Path를 비 스칼라 문자열이나 셀형 배열로 설정하면 EncodedPath에서 URI의 경로 부분에 허용되지 않는 문자가 퍼센트로 인코딩됩니다. # 문자를 포함시키려면 다음과 같이 하십시오.

uri.Path = {'foo#bar'};EP = uri.EncodedPath
EP = foo%23bar

# 문자는 인코딩하지 마십시오. 그럴 경우, 인코딩된 문자가 다시 인코딩됩니다.

uri.Path = {'foo%23Fbar'};
EP = uri.EncodedPath
EP = foo%2523Fbar

Path는 상대 경로이거나 절대 경로일 수 있습니다. 절대 경로는 둘 이상의 세그먼트를 포함하며 첫 번째 세그먼트가 비어 있는 경로입니다. 절대 경로는 / 문자로 시작하고 그 뒤에 두 번째 문자열이 오는 문자열로 인코딩됩니다. 절대 경로에 대한 이 정의는 RFC 3986 section 3.3에 정의된 path-absolute에 해당합니다. 상대 경로는 첫 번째 문자열이 비어 있지 않은 경로입니다. 상대 경로는 선행 / 없이 인코딩됩니다. 예를 들어, 다음과 같이 절대 경로를 생성합니다.

uri1 = matlab.net.URI;
uri1.Path = {'' 'products' 'matlab'};
EP = uri1.EncodedPath
EP = /products/matlab

상대 경로는 다음과 같이 생성합니다.

uri2 = matlab.net.URI;
uri2.Path = {'products' 'matlab'};
EP = uri2.EncodedPath
EP = products/matlab

URI가 Scheme, Host, UserInfo, 또는 Port 속성을 포함하고 Path가 비어 있지 않으면 EncodedPath가 선행 /를 가집니다. / 문자는 Path를 다른 속성과 구분합니다. 따라서, 절대 경로와 상대 경로 간의 차이는 Scheme, Host, UserInfo 또는 Port 속성을 포함하지 않는 URI에만 존재합니다. 예를 들어, uri1은 절대 경로입니다.

uri1.EncodedPath
ans = /products/matlab

다음과 같이 Host를 설정합니다.

uri1.Host = 'www.mathworks.com';
disp(string(uri1))
//www.mathworks.com/products/matlab

다음과 같이 상대 경로 uri2Host를 설정합니다.

uri2.EncodedPath
ans = products/matlab
uri2.Host = 'www.mathworks.com';
disp(string(uri2))
//www.mathworks.com/products/matlab

루트를 가리키는 경로를 포함하는 URI를 생성하려면 Pathstring.empty 또는 ["" ""]로 설정하십시오.

uri.Path = {'products' 'matlab' ''};
EP = uri.EncodedPath
EP = products/matlab/

Path를 폴더로 설정하려면 벡터의 끝에 빈 문자열을 추가하십시오. 그러면 후행 /EncodedPath에 추가됩니다.

uri.Path = {'products' 'matlab' ''};
EP = uri.EncodedPath
EP = products/matlab/

URI의 쿼리로, matlab.net.QueryParameter 객체로 구성된 벡터로 지정되거나 인코딩된 쿼리를 포함하는 문자열로 지정됩니다(선행 문자 ?는 선택 사항임).

보조 리소스 방향으로, string형이나 문자형 벡터로 지정됩니다. string 메서드는 URI의 조각 부분에서 허용되지 않는 문자를 퍼센트로 인코딩합니다. Fragment를 설정할 경우 값을 인코딩하지 마십시오.

예: URI https://www.mathworks.com/help/matlab/ref/weboptions.html#examples에서 Fragment 속성은 examples입니다.

URI가 절대 경로인지 여부로, true 또는 false로 지정됩니다. 절대 경로 URI는 비어 있지 않은 Scheme 속성을 가집니다. 절대 경로가 아닌 URI는 상대 경로입니다. absolute-URI에 대한 정의는 RFC 3986 Uniform Resource Identifier (URI): Generic Syntax — Section 4.3 Absolute URI를 참조하십시오.

절대 경로 URI에 포함된 Path 속성은 항상 절대 경로로 처리되고 EncodedPath 속성은 항상 선행 문자 /를 포함합니다. 메시지를 전송하려면 URI가 절대 경로여야 하고 비어 있지 않은 Host 속성을 포함해야 합니다.

데이터형: logical

URI에서 인코딩된 인증 부분으로, 속성이 비어 있지 않은 경우에만 나타나며 관련 문장 부호를 포함하는 string형이나 문자형 벡터로 지정됩니다. EncodedAuthority의 형식은 UserInfo@Host:Port입니다. EncodedAuthority를 설정하면 UserInfo, Host, Port 속성도 바로 설정됩니다. 단, 특수 문자는 인코딩해야 합니다.

예: URI https://user:pwd@www.mathworks.com:8000/product/matlab?abc=def&this=that#xyz에서 EncodedAuthority 속성은 user:pwd@www.mathworks.com:8000입니다.

인코딩된 경로로, string형이나 문자형 벡터로 지정됩니다. Path 속성을 인코딩된 URI에 나타나는 그대로 인코딩된 문자열로 가져오려면 이 속성을 읽어오십시오. 문자열로 이미 인코딩된 경로가 있으면 Path 속성 대신 EncodedPath 속성을 설정하여 인코딩이 추가로 수행되지 않도록 방지하십시오. EncodedPath를 읽어올 때 Path[]이 아니고 URI에서 Path 앞에 비어 있지 않은 성분이 있을 경우 이 속성은 선행 /를 가집니다.

EncodedPath를 빈 배열('', [], string.empty 중 하나)로 설정하는 것은 Path를 해당 값으로 설정하는 것과 동일합니다.

인코딩된 URI에 Path 속성이 없는 경우 EncodedPath는 빈 문자열 ""를 반환합니다. EncodedPath는 빈 배열일 수 없습니다.

예: URI https://www.mathworks.com/solutions/robotics에서 EncodedPath 속성은 /solutions/robotics입니다.

인코딩된 쿼리로, string형이나 문자형 벡터로 지정됩니다. EncodedQueryQuery 속성에 대해 string 메서드를 호출할 때와 동일한 값을 반환합니다. EncodedQuery를 설정하는 것은 Query 속성을 설정하는 것과 동일합니다.

예: URI https://www.mathworks.com/support/search_results.html?q=+weboptions+product:"MATLAB+Compiler"에서 EncodedQuery 속성은 q=+weboptions+product:%22MATLAB+Compiler%22입니다.

인코딩된 전체 URI로, string형이나 문자형 벡터로 지정됩니다. EncodedURImatlab.net.URI.string 메서드와 동일한 값을 반환합니다. EncodedURI를 설정하는 것은 'literal' 인수를 사용하여 URI 생성자를 호출하는 것과 동일합니다.

메서드

모두 확장

예제

모두 축소

URI를 생성합니다.

U = matlab.net.URI('https://www.mathworks.com');
U.Query = matlab.net.QueryParameter('q','weboptions');
U.Path = 'search/site_search.html';

weboptions를 포함하는 탐색 결과를 표시합니다.

 web(char(U))
U = matlab.net.URI('//www.mathworks.com/products/simulink/');
U.EncodedURI
ans = 

  string

    "//www.mathworks.com/products/simulink/"

버전 내역

R2016b에 개발됨