Main Content

matlab.net.URI クラス

パッケージ: matlab.net

Uniform Resource Identifier (URI)

説明

matlab.net.URI クラスは、Web アドレスや URL などインターネットの Uniform Resource Identifier (URI) を構築します。インターネット URI はコンポーネントに分割された文字列です。各コンポーネントは URI クラスのプロパティによって表されます。次のテキストは、プロパティと関連記号を示しています。わかりやすいようにスペースで区切られています。スペースは、エンコードされた URI には示されません。関連記号はプロパティ値の一部ではありません。

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

ここで、Authority には次のプロパティが含まれます。

UserInfo@ Host :Port

インターネット URI を作成するには、matlab.net.URIstring メソッドまたは char メソッドを使用します。これらのメソッドは、空でないプロパティに記号を追加し、予約文字をエスケープしてプロパティをエンコードします。

プロパティはすべてオプションです。ただし、異なる使用法では特定のプロパティを設定する必要がある場合があります。

出力文字列からプロパティと記号を削除するには、プロパティ値を [] に設定します。

作成

説明

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) は 1 つ以上の queryNamequeryValue パラメーターを 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 の作成が許可されません。これにより、'%' 文字の再エンコードができなくなります。必ずエンコードしなければならない文字 (HostPath'\'' ' など) は引き続きパーセントエンコードされます。

このオプションは、Query (matlab.net.QueryParameter) の引数には影響しません。

入力引数

すべて展開する

送信先。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 のペアは、Web サービスによって定義されます。queryName の文字はエンコードしないでください。

クエリ値。文字配列、数値、論理値、datetime 値または配列として指定します。queryValue の文字はエンコードしないでください。

出力形式。queryValue 引数に配列があるときに matlab.net.ArrayFormat オブジェクトとして指定します。許容値については、ArrayFormat を参照してください。

format 引数は queryVector 引数の値の形式に影響を与えません。

プロパティ

すべて展開する

:// 文字の前に示される URI スキーム (プロトコルとも呼ばれる)。string または文字ベクトルとして指定します。Scheme は常に string を返します。空でない場合、Schemehttp または https でなければなりません。ただし、この規則は強制されません。MATLAB® は、file などの他のスキームをサポートしません。

例: http

例: https

ユーザー情報。string または文字ベクトルとして指定します。UserInfo は、@ が後に続く Host プロパティの前に示されます。string メソッドは特殊文字をパーセントエンコードします。UserInfo を設定するときは値をエンコードしないでください。

例: name

例: name:password

ホスト名。string または文字ベクトルとして指定します。値は、ドメイン ネーム システム (DNS) 形式またはインターネット プロトコル version 4 (IPv4) または version 6 (IPv6) アドレスになります。string メソッドは、URI のホスト部分で許可されない文字をパーセントエンコードします。ピリオド文字 (.) は変更されません。Host を設定するときは値をエンコードしないでください。

例: www.mathworks.com

例: 2222:7344:0db8:0000:0100:8a2e:0370:85a3 IPv6 アドレス

ポート番号。0 ~ 65535 の範囲の数字を表す数値、string または文字ベクトルで指定します。uint16 として格納されます。

例: 8000

パス セグメント。string、string ベクトル、文字ベクトルまたは文字ベクトルの cell 配列として指定します。結果は常に 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 のベクトルまたは文字ベクトルの cell 配列を指定するのと同じになります。

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

EncodedPath には、常に / 文字の数よりも 1 つ多い Path セグメントがあります。すべてのセグメントは空の string にすることができます。Path(1) が空の string の場合、EncodedPath/ で始まります。Path(end) が空の string の場合、EncodedPath/ で終わります。

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

Path を非スカラー string または cell 配列に設定すると、URI のパス部分で許容されない文字は EncodedPath でパーセントエンコードされます。# 文字を含めるには、次のようにします。

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

# 文字をエンコードしないでください。エンコードすると、エンコードされた文字がもう一度エンコードされます。

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

Path は相対または絶対のいずれにもなることができます。絶対パスは複数のセグメントのあるパスで、最初のセグメントは空です。2 番目の文字列が後に続く / 文字で始まる文字列としてエンコードされています。この絶対パスの定義は、path-absolute に対応します。これは、RFC 3986 Uniform Resource Identifier (URI): Generic Syntax のセクション 3.3 Path (Internet Engineering Task Force (IETF®) の Web サイト上) で定義されています。相対パスは最初の文字列が空でないパスです。先頭の / なしでエンコードされています。たとえば、次のように絶対パスを作成します。

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 に SchemeHostUserInfo または Port プロパティが含まれ、Path が空でない場合、EncodedPath には先頭に / があります。/ 文字は Path と他のプロパティを区切ります。したがって、絶対パスと相対パスの違いは SchemeHostUserInfo または 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 をフォルダーに設定するには、空の string をベクトルの最後に追加します。この規則により、末尾の /EncodedPath に追加されます。

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

URI のクエリ。matlab.net.QueryParameter オブジェクトのベクトル、またはオプションの先行 ? 文字のあるエンコードされたクエリを含む string として指定します。

2 番目のリソースへの方向指示。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 のセクション 4.3 Absolute URI (Internet Engineering Task Force (IETF) の Web サイト上) を参照してください。

絶対 URI の Path プロパティは常に絶対パスとして扱われ、EncodedPath プロパティには常に先頭に / 文字があります。メッセージを送信するには、URI は必ず絶対で、空でない Host プロパティも含まれていなければなりません。

データ型: logical

URI のエンコードされたオーソリティ部分。プロパティが空でない場合にのみ示される関連記号のある string または文字ベクトルとして指定します。EncodedAuthority の形式は UserInfo@Host:Port です。EncodedAuthority の設定は、特殊文字をエンコードしなければならないという点を除き、UserInfoHost および Port プロパティの設定のショートカットになります。

例: URI https://user:pwd@www.mathworks.com:8000/product/matlab?abc=def&this=that#xyz では、EncodedAuthority プロパティは user:pwd@www.mathworks.com:8000 です。

エンコードされたパス。string または文字ベクトルとして指定します。このプロパティを読み取って、エンコードされた URI に示されるとおりのエンコードされた string として Path プロパティを取得します。string として既にエンコードされたパスがある場合、Path プロパティではなく EncodedPath プロパティを設定して、さらにエンコードされないようにします。EncodedPath を読み取ると、Path[] でなく、Path の前の URI に空でないコンポーネントがある場合、先頭に / があります。

EncodedPath を空の配列 (''[] または string.empty) に設定することは Path をその値に設定することと同じです。

エンコードされた URI に Path プロパティがない場合、EncodedPath は空の string "" を返します。ただし、EncodedPath が空の配列にはなることはありません。

例: URI https://www.mathworks.com/solutions/robotics では、EncodedPath プロパティは /solutions/robotics です。

エンコードされたクエリ。string または文字ベクトルとして指定します。EncodedQuery は、string メソッドを Query プロパティで呼び出す場合と同じ値を返します。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 を設定することは URI コンストラクターを 'literal' 引数で呼び出すことと同じです。

メソッド

すべて展開する

すべて折りたたむ

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 で導入