Класс uri
Гибкая реализация URI, не зависящая от протокола. Экземпляры URI являются неизменяемыми. Запросы к различным полям в пустом URI будут возвращать пустые строки. Запросы к различным членам диагностики в пустом URI будут возвращать значение false.
Предупреждение
В этом разделе содержатся сведения о C++ REST SDK 1.0 (кодовое название "Casablanca").Если используется более поздняя версия с веб-страницы Casablanca Codeplex, воспользуйтесь локальной документацией по адресу http://casablanca.codeplex.com/documentation.
class uri;
Члены
Открытые классы
Имя |
Описание |
---|---|
Различные компоненты URI. Это перечисление используется для указания того, какой компонент URI кодируется в encode_uri_component. Это позволяет выполнять определенный тип кодирования. scheme и port не поддерживают "%", поэтому они не кодируются. |
Открытые конструкторы
Имя |
Описание |
---|---|
Перегружен. Создает пустой URI |
Открытые методы
Имя |
Описание |
---|---|
Создает новый объект URI с такой же частью authority, как эта. Части resource и query пропускаются. |
|
Декодирует закодированную строку. |
|
Кодирует строку путем преобразования всех символов, за исключением незарезервированных символов RFC 3986, в их шестнадцатеричное представление. |
|
Кодирует компонент URI согласно стандарту RFC 3986. Обратите внимание, если указан полный URI вместо отдельного компонента URI, все символы, не входящие в набор незарезервированных, экранируются. |
|
Получение компонента fragment URI в виде закодированной строки. |
|
Указывает, имеется ли у другого URI такая же часть authority, как у данного. |
|
Получение компонента host URI в виде закодированной строки. |
|
URI "authority" — это URI со схемой, дополнительными сведениями о пользователях, с именем узла и портом (необязательно). |
|
Пустой URI не определяет никакие компоненты и служит в качестве значения по умолчанию |
|
URI с замыканием на себя — URI, который ссылается на имя узла или IP-адрес только на локальном компьютере. |
|
Переносимый URI — это URI с именем узла, который может быть глобально разрешен (использоваться с другого компьютера). |
|
URI подстановочного знака — это URI, который ссылается на все имена узлов, которые разрешаются на локальном компьютере (с использованием * или +) |
|
Указывает, пуста ли часть path этого URI. |
|
Получение компонента path URI в виде закодированной строки. |
|
Получение компонента port URI. Возвращает -1, если порт не указан. |
|
Получение компонента query URI в виде закодированной строки. |
|
Получает часть path, query и часть fragment этого URI, которая может быть пустой. |
|
Получение компонента scheme URI в виде закодированной строки. |
|
Разделение пути на иерархические компоненты. |
|
Разделение запроса на компоненты "ключ-значение". |
|
Возвращает полный (закодированный) URI в виде строки. |
|
Получение компонента user info URI в виде закодированной строки. |
|
Проверяет строку как URI. |
Открытые операторы
Имя |
Описание |
---|---|
Заметки
Эта реализация принимает идентификаторы 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