matlab.net. Класс URI

Пакет: matlab.net

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

Описание

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

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

где Authority содержит эти свойства:

UserInfo@ Host :Port

Используйте string matlab.net.URI или методы 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 непосредственно, вы видите декодируемую версию. Опция '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 All

Пример: свойства Host и Scheme: https://www.mathworks.com

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

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

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

Пример: разместите и запросите: //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)

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

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

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

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

Свойства

развернуть все

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

Пример: http

Пример: https

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

Пример: name

Пример: name:password

Имя хоста, заданное как строка или вектор символов. Значение находится в формате Системы доменных имен (DNS) или как адрес версии 4 (IPv4) или версии 6 (IPv6) межсетевого протокола. Процент метода string - кодирует символы, которые не позволены в части, относящейся к хосту URI. Символы точки (.) неизменны. Когда установка Host, не кодируйте значение.

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

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

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

Пример: 8000

Сегменты пути, заданные как вектор строки или строки или как вектор символов или массив ячеек из символьных векторов. Результатом всегда является вектор строк. Чтобы видеть значение закодированного пути, используйте свойство 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 на вектор символов или скалярную строку, которая содержит символ /, то значение разделено в сегменты в символах /. Результат совпадает с определением вектора строк или массива ячеек из символьных векторов.

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 имеет ведущий /. Символ / разделяет Path от других свойств. Поэтому различие между абсолютными и относительными путями существует только для URIs, которые не содержат 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, возражает или строка, содержащая закодированный запрос с дополнительным ведущим символом ?.

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

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

Является ли URI абсолютным, задан как true или false. Абсолютный URI имеет непустое свойство Scheme. Если URI не является абсолютным, то это относительно. Для определения absolute-URI смотрите Унифицированный идентификатор ресурса (URI) RFC 3986: Типичный Синтаксис — Раздел 4,3 Абсолютных URI.

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

Типы данных: логический

Закодированный фрагмент полномочий URI, заданного как строка или вектор символов со связанным появлением пунктуации, только если свойство непусто. Форматом 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.

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

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

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

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

Закодированный запрос, заданный как строка или вектор символов. 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, заданный как строка или вектор символов. EncodedURI возвращает то же значение как метод matlab.net.URI.string. Установка EncodedURI эквивалентна вызову конструктора URI с аргументом 'literal'.

Методы

Эти методы реализуют эквивалентную функциональность MATLAB для этого класса.

eq

Сравните URIs для равенства. Два URIs рассматриваются равными, если они обращаются к тому же ресурсу. Пустая строка или пустое свойство Path рассматриваются равными [].

char

URI как вектор символов

string

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/"

Введенный в R2017b