Url
Стд::Http::Url
Унифицированный адрес ресурса (URL-ссылка), представленный в виде объекта.
Схема ссылки:
Схема://ИмяПользователя:Пароль@Базовы йUrl:Порт/ОтносительныйПуть?Параметры#Якорь
Пример ссылки:
http://username:password@1c.ru:80/applications/test?param=data#anchor
Сравнение
Ссылочное
Иерархия типа
Базовые типы: Объект
Примеры
Общие примеры
Создание Url из строки.
пер Ссылка = новый Url("http://username:password@1c.ru:80/applications/test?param=data#anchor")
// Ссылка.Схема - http
// Ссылка.Хост - 1c.ru
// Ссылка.Путь - /applications/test
// Ссылка.Параметры.ПолучитьПервый("param") - data
// Ссылка.Порт - 80
// Ссылка.ИмяПользователя - username
// Ссылка.Пароль - password
// Ссылка.Якорь - anchor
Раскодированная ссылка:
// символ % экранирован
знч ЗакодированнаяСсылка = "http://1c.ru/applications/\%D1\%82\%D0\%B5\%D1\%81\%D1\%82?\%D0\%BF\%D0\%B0\%D1\%80\%D0\%B0\%D0\%BC\%D0\%B5\%D1\%82\%D1\%80=\%D0\%B7\%D0\%BD\%D0\%B0\%D1\%87\%D0\%B5\%D0\%BD\%D0\%B8\%D0\%B5"
знч Ссылка = новый Url(ЗакодированнаяСсылка)
// http://1c.ru/applications/тест?параметр=значение
Ссылка.ВСтроку()
Собрать произвольный Url по частям:
// http://127.0.0.1:8080/app/%D0%BF%D1%80%D0%B8%D0%BB%D0%BE%D0%B6%D0%B5%D0%BD%D0%B8%D0%B5?data=%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D0%B5%20%D0%B7%D0%B0%D0%BF%D1%80%D0%BE%D1%81%D0%B0#%D0%B7%D0%B0%D0%B3%D0%BE%D0%BB%D0%BE%D0%B2%D0%BE%D0%BA%201
пер Ссылка = Url.СБазовымUrl("http://localhost")
.СХостом("127.0.0.1")
.СПортом(8080)
.СПутем("/app/приложение")
.СПараметрамиЗапроса("data=данные запроса")
.СЯкорем("заголовок 1")
Конвертировать адрес FTP на SFTP:
метод ПерейтиВSftp(ИсходнаяСсылка: Url): Url
возврат ИсходнаяСсылка.СоСхемой("sftp").СПортом(22)
;
Сформировать URL-ссылку на Яндекс: Карты с адресом:
метод ПолучитьСсылкуНаКартеПоАдресу(Адрес: Строка): Строка
возврат Url.СБазовымUrl("https://maps.yandex.ru")
.СПараметрамиЗапроса(новый ПараметрыUrl({"text": Адрес}))
.ВКодированнуюСтроку()
;
метод ПолучитьСсылкуНаОфисНаКарте(): Строка
знч АдресКомпании = "Дмитровское шоссе, 9, Москва"
// https://maps.yandex.ru?text=%D0%94%D0%BC%D0%B8%D1%82%D1%80%D0%BE%D0%B2%D1%81%D0%BA%D0%BE%D0%B5%20%D1%88%D0%BE%D1%81%D1%81%D0%B5,%209,%20%D0%9C%D0%BE%D1%81%D0%BA%D0%B2%D0%B0
знч СсылкаНаОфисНаКарте = ПолучитьСсылкуНаКартеПоАдресу(АдресКомпании)
возврат СсылкаНаОфисНаКарте
;
Кодирование URL-строки с одиночными %:
// Будет выброшено исключение Исключение ИсключениеНедопустимыйФормат
// для ссылки "https://docs.ru/path%zz/path?text=title%201"
пер Ссылка = новый Url("https://docs.ru/path%%zz/path?text=title%201")
// "%zz" - не валидное процентное кодирование ссылки "https://docs.ru/path%zz/path?text=title%201"
Ссылка = новый Url("https://docs.ru/path%%zz/path?text=title%201", Истина)
// "https://docs.ru/path%25zz/path?text=title%201"
Ссылка.ВКодированнуюСтроку()
// "https://docs.ru/path%zz/path?text=title 1"
Ссылка.ВСтроку()
//Будет выброшено исключение Исключение ИсключениеНедопустимыйФормат
Ссылка = Url.СБазовымUrl("https://docs.ru")
.СПутем("path%%zz")
Ссылка = Url.СБазовымUrl("https://docs.ru")
.СПутем("path%%zz", Истина)
// "https://docs.ru/path%25zz"
Ссылка.ВКодированнуюСтроку()
// "https://docs.ru/path%zz"
Ссылка.ВСтроку()
Раскодирование пути в URL-строке:
пер Ссылка = новый Url("https://docs.ru/path%20/%20path")
// "path / path"
Ссылка.Путь
// https://docs.ru/path%20/%20path
Ссылка.ВКодированнуюСтроку()
// Экранируем %, не раскодирую значение URL:
Ссылка = новый Url("https://docs.ru/path%20/%20path", Ложь)
// "path%20/%20path"
Ссылка.Путь
// https://docs.ru/path%2520/%2520path
Ссылка.ВКодированнуюСтроку()
Конструкторы
Url
Создает новый объект на основе указанного базовогоURL-адреса.
БазовыйUrl-URL-строка в любом виде (кодированный или не кодированный).РаскодироватьЗначение- ЗначениеБазовыйUrlбудет предварительно раскодировано из URL кодировки, в противном случае значение будет использоваться "к ак есть".
Исключения
ИсключениеНедопустимыйФормат - если ссылка некорректна.
Примеры
Переданное значение будет раскодировано:
знч Ссылка = Url.СБазовымUrl("http://1c.ru/my%20string")
// my string
Ссылка.Путь
// http://1c.ru/my%20string
Ссылка.ВКодированнуюСтроку()
Переданное значение не будет раскодировано:
знч Ссылка = Url.СБазовымUrl("http://1c.ru/my%20string", Ложь)
// my%20string
Ссылка.Путь
// http://1c.ru/my%2520string
Ссылка.ВКодированнуюСтроку()
Заменить версию API в Url-пути:
конст ВЕРСИЯ_АПИ_3 = "v3"
метод ПреобразоватьПутьВUrlДо3ВерсииАпи(ИсходныйUrl: Url): Url
знч СегментыПути = ИсходныйUrl.ПолучитьСегментыПути()
если СегментыПути[1] == ВЕРСИЯ_АПИ_3
возврат ИсходныйUrl
;
знч НовыеСегментыПути = новый Массив<Строка>(СегментыПути)
НовыеСегментыПути[1] = ВЕРСИЯ_АПИ_3
возврат ИсходныйUrl.СПутем(НовыеСегментыПути)
;
метод ПолучитьUrl3ВерсииАпи(UrlV1String: String): Url
// "http://localhost/api/v1/users/find-by-id"
знч UrlV1 = новый Url(UrlV1String)
// "http://localhost/api/v3/users/find-by-id"
знч UrlV3 = ПреобразоватьПутьВUrlДо3ВерсииАпи(UrlV1)
возврат UrlV3
;
Экранирование части пути с символом "/":
знч Ссылка = новый Url("https://github.com/user/repo")
.СДобавлениемПути(["tree", "feature/issue-99"])
// "https://github.com/user/repo/feature/issue-99"
Ссылка.ВСтроку()
// "https://github.com/user/repo/feature%2Fissue-99"
Ссылка.ВКодированнуюСтроку()
Свойства
ИмяПользователя
ТолькоЧтение
ИмяПользователя: Строка?Имя пользователя.
Параметры
ТолькоЧтение
Параметры: ПараметрыUrl?Параметры ссылки.
Пароль
ТолькоЧтение
Пароль: Строка?Пароль пользователя.
Порт
ТолькоЧтение
Порт: ЧислоПорт.
Путь
ТолькоЧтение
Путь: СтрокаПуть.
Схема
ТолькоЧтение
Схема: СтрокаСхема.
Хост
ТолькоЧтение
Хост: СтрокаХост.
Якорь
ТолькоЧтение
Якорь: Строка?Якорь (хеш) ссылки.
Методы
ВКодированнуюСтроку
ВКодированнуюСтроку(): СтрокаВСтроку
ВСтроку(): СтрокаПереопределение
Объект::ВСтроку