Поделиться через


Класс uri

Гибкая реализация URI, не зависящая от протокола. Экземпляры URI являются неизменяемыми. Запросы к различным полям в пустом URI будут возвращать пустые строки. Запросы к различным членам диагностики в пустом URI будут возвращать значение false.

Предупреждение

В этом разделе содержатся сведения о C++ REST SDK 1.0 (кодовое название "Casablanca").Если используется более поздняя версия с веб-страницы Casablanca Codeplex, воспользуйтесь локальной документацией по адресу http://casablanca.codeplex.com/documentation.

class uri;

Члены

JJ948394.collapse_all(ru-ru,VS.140).gifОткрытые классы

Имя

Описание

Класс uri::components

Различные компоненты URI. Это перечисление используется для указания того, какой компонент URI кодируется в encode_uri_component. Это позволяет выполнять определенный тип кодирования. scheme и port не поддерживают "%", поэтому они не кодируются.

JJ948394.collapse_all(ru-ru,VS.140).gifОткрытые конструкторы

Имя

Описание

Конструктор uri::uri

Перегружен. Создает пустой URI

JJ948394.collapse_all(ru-ru,VS.140).gifОткрытые методы

Имя

Описание

Метод uri::authority

Создает новый объект URI с такой же частью authority, как эта. Части resource и query пропускаются.

Метод uri::decode

Декодирует закодированную строку.

Метод uri::encode_data_string

Кодирует строку путем преобразования всех символов, за исключением незарезервированных символов RFC 3986, в их шестнадцатеричное представление.

Метод uri::encode_uri

Кодирует компонент URI согласно стандарту RFC 3986. Обратите внимание, если указан полный URI вместо отдельного компонента URI, все символы, не входящие в набор незарезервированных, экранируются.

Метод uri::fragment

Получение компонента fragment URI в виде закодированной строки.

Метод uri::has_same_authority

Указывает, имеется ли у другого URI такая же часть authority, как у данного.

Метод uri::host

Получение компонента host URI в виде закодированной строки.

Метод uri::is_authority

URI "authority" — это URI со схемой, дополнительными сведениями о пользователях, с именем узла и портом (необязательно).

Метод uri::is_empty

Пустой URI не определяет никакие компоненты и служит в качестве значения по умолчанию

Метод uri::is_host_loopback

URI с замыканием на себя — URI, который ссылается на имя узла или IP-адрес только на локальном компьютере.

Метод uri::is_host_portable

Переносимый URI — это URI с именем узла, который может быть глобально разрешен (использоваться с другого компьютера).

Метод uri::is_host_wildcard

URI подстановочного знака — это URI, который ссылается на все имена узлов, которые разрешаются на локальном компьютере (с использованием * или +)

Метод uri::is_path_empty

Указывает, пуста ли часть path этого URI.

Метод uri::is_port_default

Метод uri::path

Получение компонента path URI в виде закодированной строки.

Метод uri::port

Получение компонента port URI. Возвращает -1, если порт не указан.

Метод uri::query

Получение компонента query URI в виде закодированной строки.

Метод uri::resource

Получает часть path, query и часть fragment этого URI, которая может быть пустой.

Метод uri::scheme

Получение компонента scheme URI в виде закодированной строки.

Метод uri::split_path

Разделение пути на иерархические компоненты.

Метод uri::split_query

Разделение запроса на компоненты "ключ-значение".

Метод uri::to_string

Возвращает полный (закодированный) URI в виде строки.

Метод uri::user_info

Получение компонента user info URI в виде закодированной строки.

Метод uri::validate

Проверяет строку как URI.

JJ948394.collapse_all(ru-ru,VS.140).gifОткрытые операторы

Имя

Описание

Оператор uri::operator!=

Оператор uri::operator<

Оператор uri::operator==

Заметки

Эта реализация принимает идентификаторы URI (https://msn.com/path) и связанные с URI ссылки (/path?query#frag). Такая реализация не предоставляет все зависящие от схемы обработки. Пример будет следующим: http://path1/path. Это допустимый URI, но недопустимый http-URI, то есть он является синтаксически правильным, но не соответствует требованиям схемы http (для http требуется узел). Мы можем решить этот вопрос, разрешив подключаемый класс-политику "схема", который предоставляет дополнительные возможности для проверки и канонизации URI согласно схеме и представит уровень безопасности типов для URI различных схем и, таким образом, отличающиеся семантики. При внедрении URI, не зависящего от схемы, существует проблема, связанная со сравнением на равенство. Например, следующие URI считаются равными: https://msn.com и https://msn.com:80. То есть, порт по умолчанию может быть либо опущен, либо задан явно. Поскольку способ сопоставления схему с ее портом по умолчанию отсутствует, узнать, равны ли эти компоненты, нельзя. Это одна из проблем, связанная с поведением схемы.

Требования

Заголовок: base_uri.h

Пространство имен: web::http

См. также

Ссылки

Пространство имен web::http