exponenta event banner

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

Используйте 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 отображается декодированная версия. '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.

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

Свойства

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

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

Пример: http

Пример: https

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

Пример: name

Пример: name:password

Имя хоста, указанное как строка или символьный вектор. Значение в формате DNS или в качестве адреса протокола Интернета версии 4 (IPv4) или версии 6 (IPv6). 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)

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

Направление на вторичный ресурс, указанное как строка или символьный вектор. string метод percent-кодирует символы, которые не разрешены во фрагменте 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 Унифицированный идентификатор ресурса (URI): общий синтаксис - Раздел 4.3 Абсолютный URI.

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

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

Кодированная часть полномочий 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' аргумент.

Методы

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

Примеры

свернуть все

Создайте 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