matlab.net.URI class

Пакет: matlab.net

Унифицированный идентификатор ресурса (URI)

Описание

The matlab.net.URI класс создает унифицированный идентификатор ресурса (URI) Интернета, такой как веб-адрес или URL. URI - это строка, разделенная на компоненты. Каждый компонент представлен свойством URI класс. Следующий текст показывает свойства и связанную с ними пунктуацию, разделенную пространствами для ясности. Пространства не отображаются в закодированном URI. Связанная пунктуация не является частью значения свойства.

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

где Authority содержит следующие свойства:

UserInfo@ Host :Port

Используйте matlab.net.URI string или char методы создания интернет- URI. Эти методы кодируют свойства, добавляя пунктуацию к непустым свойствам и избегая зарезервированных символов.

Все свойства опциональны. Однако для различных видов использования могут потребоваться определенные свойства.

Чтобы исключить свойство и его пунктуацию из выхода строки, установите значение свойства равным [].

Создание

Описание

obj = matlab.net.URI создает пустой URI.

пример

obj = matlab.net.URI(destination) создает URI, заданный как destination.

пример

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 непосредственно, вы видите декодированную версию. The 'literal' опция не позволяет вам создавать незаконный URI. Это препятствует повторному кодированию '%' персонажи. Символы, которые всегда должны быть закодированы, такие как '\' и ' ' в Host или Path, все еще закодированы в процентах.

Эта опция не влияет на Query (matlab.net.QueryParameter) аргументы.

Входные параметры

расширить все

Назначение, заданное как строка или вектор символов, задающий URI или фрагменты единицы или matlab.net.URI объект. Если destination является matlab.net.URI объект, затем destination должен быть единственным аргументом.

Пример: https://user:pwd@www.mathworks.com:8000/product/matlab?abc=def&this=that#xyz Все свойства

Пример: Хост и свойства схемы: https://www.mathworks.com

Пример: Только хост: //www.mathworks.com

Пример: Хост и путь: //www.mathworks.com/products/matlab/

Пример: Только путь: products/matlab/live-editor

Пример: Хост и запрос: //www.mathworks.com/search/site_search.html?q=weboptions

Свойство Query, заданное как вектор matlab.net.QueryParameter объекты. Запрос имеет форму:

name1=value1&name2=value2&name3=value3

Пример: matlab.net.QueryParameter('hl','en','ie','utf8','num',50)

Имя запроса, заданное как строка или вектор символов. Веб-сервис определяет queryName, queryValue пар, которые он принимает как часть запроса. Не кодируйте символы в queryName.

Значение запроса, заданное как символьный массив, или как число, логическое или datetime значение или массив. Не кодируйте символы в queryValue.

Выход, заданный как matlab.net.ArrayFormat объект, когда массив появляется в queryValue аргумент. Для допустимых значений смотрите ArrayFormat.

The format аргумент не влияет на формат значений в queryVector аргумент.

Свойства

расширить все

Схема URI, иногда называемая протоколом, появляется перед :// символы, заданные как строка или вектор символов. Scheme всегда возвращает строку. Если не пустой, то Scheme должен быть http или https. Однако эта конвенция не применяется. MATLAB® не поддерживает другие схемы, такие как file.

Пример: http

Пример: https

Информация о пользователе, заданная как строка или вектор символов. UserInfo появляется перед Host свойство, за которым следует @ символ. The string метод percent-кодирует специальные символы. При установке UserInfo, не кодируйте значение.

Пример: name

Пример: name:password

Имя хоста, заданное как строка или вектор символов. Значение находится в Области Name System (DNS) или в виде Межсетевого протокола адреса версии 4 (IPv4) или версии 6 (IPv6). The string method percent - кодирует символы, которые не разрешены в основном фрагменте URI. Символы периода (.) не изменяются. При установке Host, не кодируйте значение.

Пример: www.mathworks.com

Пример: 2222:7344:0db8:0000:0100:8a2e:0370:85a3 IPv6 адрес

Номер порта, заданный как число, или как строка или векторы символов, представляющие число в область значений 0-65535, сохраненное как uint16.

Пример: 8000

Сегменты контура, заданные как строковый или строковый вектор или как вектор символов или массив ячеек из векторов символов. Результатом всегда является вектор строк. Чтобы увидеть значение закодированного пути, используйте EncodedPath свойство.

Путь в URI задается EncodedPath свойство. EncodedPath - серия сегментов, разделенных / символ, где каждый из этих сегментов является представителем Path.

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

The / символы не появляются в Path, но EncodedPath содержит их. Для примера,

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

Если вы задаете Path в вектор символов или скалярную строку, содержащую / символ, затем значение разделяется на сегменты в / персонажи. Результат аналогичен заданию вектора строк или массива ячеек из векторов символов.

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 для нескалярной строки или массива ячеек символы, запрещенные в фрагмент пути URI, закодированы в процентах EncodedPath. Включение # символ,

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

Не кодируйте # символ. Если это так, закодированные символы снова кодируются.

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

Path может быть относительным или абсолютным. Абсолютный путь - это путь с более чем одним сегментом, первый сегмент которого пуст. Он кодируется как строка, начинающаяся с / символ, за которым следует вторая строка. Это определение абсолютного пути соответствует path-absolute, определенное в RFC 3986 раздел 3.3. Относительный путь - это путь, первая строка которого не пуста. Оно закодировано без начального /. Для примера создайте абсолютный путь:

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 имеет начальное /. The / разделяет символы Path от других свойств. Поэтому различие между абсолютным и относительным путями существует только для URI, которые не содержат Scheme, Host, UserInfo, или Port свойства. Для примера, uri1 - абсолютный путь.

uri1.EncodedPath
ans = /products/matlab

Установите Host:

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

Задайте Host относительного пути uri2:

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

Чтобы создать URI с путем, указывающим на корень, задайте Path на string.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 объекты или строка, содержащая закодированный запрос с необязательным начальным ? символ.

Направление на вторичный ресурс, заданное как строка или вектор символов. The string method percent - кодирует символы, которые не разрешены в фрагмент фрагментов URI. При установке Fragment, не кодируйте значение.

Пример: В https://www.mathworks.com/help/matlab/ref/weboptions.html#examples URI, а Fragment свойство examples.

Является ли URI абсолютным, задается как true или false. Абсолютный URI имеет непустое Scheme свойство. Если URI не абсолютен, то он относителен. Для определения absolute-URI, см. RFC 3986 Унифицированный идентификатор ресурса (URI): Общий синтаксис - Раздел 4.3 Абсолютный URI.

The Path свойство в абсолютном URI всегда рассматривается как абсолютный путь и EncodedPath свойство всегда содержит начальный / символ. Чтобы отправить сообщение, URI должен быть абсолютным и также должен содержать непустой Host свойство.

Типы данных: logical

Закодированный фрагмент полномочий URI, заданная как строка или вектор символов со связанной пунктуацией, появляется только, если свойство непусто. Формат EncodedAuthority является UserInfoHost: Port. Настройка EncodedAuthority - ярлык для установки UserInfo, Host, и Port свойства, за исключением того, что необходимо закодировать специальные символы.

Пример: В https://user:pwd@www.mathworks.com:8000/product/matlab?abc=def&this=that#xyz URI, а EncodedAuthority свойство user:pwd@www.mathworks.com:8000.

Закодированный путь, заданный как строка или вектор символов. Прочитайте это свойство, чтобы получить Path свойство как закодированная строка в кодированном URI. Если у вас есть уже закодированный путь в виде строки, задайте EncodedPath свойство вместо Path свойство для предотвращения дальнейшей кодировки. При чтении EncodedPath, он имеет ведущую / если Path не [] и перед этим в URI присутствуют непустые компоненты Path.

Настройка EncodedPath в пустой массив ('', [] или string.empty) эквивалентно установке Path на это значение.

Если нет Path свойство в закодированном URI, затем EncodedPath возвращает пустую строку, "". Однако EncodedPath никогда не является пустым массивом.

Пример: В https://www.mathworks.com/solutions/robotics URI, а EncodedPath свойство /solutions/robotics.

Закодированный запрос, заданный как строка или вектор символов. EncodedQuery возвращает то же значение, что и вызов string метод на Query свойство. Настройка EncodedQuery эквивалентно установке Query свойство.

Пример: В https://www.mathworks.com/support/search_results.html?q=+weboptions+product:"MATLAB+Compiler" URI, а EncodedQuery свойство q=+weboptions+product:%22MATLAB+Compiler%22.

Весь кодированный URI, заданный как строка или вектор символов. EncodedURI возвращает то же значение, что и matlab.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