Перейти к основному содержимому

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 = новый Url(ЗакодированнаяСсылка)
// 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.СБазовым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-строки с одиночными %:

// Будет выброшено исключение Исключение ИсключениеНедопустимыйФормат
// ссылка = новый Url("https://docs.ru/path%zz/path?text=title%201")

// "%zz" - не валидное процентное кодирование
пер Ссылка = новый 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.СПутем(НовыеСегментыПути)
;

знч Url = новый Url("http://localhost/api/v1/users/find-by-id"
// "http://localhost/api/v3/users/find-by-id"
Url = ПреобразоватьПутьВUrlДо3ВерсииАпи(Url)

Экранирование части пути с символом "/":

знч Url = новый Url("https://github.com/user/repo")
.СДобавлениемПути(["tree", "feature/issue-99"])

// "https://github.com/user/repo/feature/issue-99"
// Url.ВСтроку()
// "https://github.com/user/repo/feature%2Fissue-99"
// Url.ВКодированнуюСтроку()

Свойства

ИмяПользователя

ТолькоЧтение

ИмяПользователя: Строка?

Имя пользователя.


Параметры

ТолькоЧтение

Параметры: ПараметрыUrl?

Параметры ссылки.


Пароль

ТолькоЧтение

Пароль: Строка?

Пароль пользователя.


Порт

ТолькоЧтение

Порт: Число

Порт.


Путь

ТолькоЧтение

Путь: Строка

Путь.


Схема

ТолькоЧтение

Схема: Строка

Схема.


Хост

ТолькоЧтение

Хост: Строка

Хост.


Якорь

ТолькоЧтение

Якорь: Строка?

Якорь (хеш) ссылки.


Методы

ВКодированнуюСтроку

ВКодированнуюСтроку(): Строка
Возвращает строковое кодированное представление ссылки.


ВСтроку

ВСтроку(): Строка
Переопределение: ВСтроку

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


ПолучитьСегментыПути

ПолучитьСегментыПути(): ЧитаемыйМассив<Строка>
Возвращает массив сегментов пути в URL.


СБазовымUrl

Статический

@ПроверятьИспользованиеЗначения
СБазовымUrl(
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
Ссылка.ВКодированнуюСтроку()

СДобавлениемПути

@ПроверятьИспользованиеЗначения
СДобавлениемПути(
Путь: Строка|ЧитаемыйМассив<Строка>,
РаскодироватьЗначение: Булево = Истина
): Url
Возвращает копию объекта, в котором присоединен указанный путь.

  • Путь - URL- Путь или список сегментов пути. Например, /app/data, раздел/подраздел или "app", "data". Допустимо указывать кодированные или не кодированные значения.
  • РаскодироватьЗначение - Значение Путь (или значения, если это список сегментов пути) будет предварительно раскодировано из URL-кодировки, в противном случае значение будет использоваться "как есть".

Исключения

ИсключениеНедопустимыйФормат - если Путь некорректен.

Примеры

Добавления сегмента пути без раскодирования значения:

знч Url = новый Url("https://1c.ru/product")
.СДобавлениемПути(["1s-buhgalteriya%208-3"], Ложь)

// "https://1c.ru/product/1s-buhgalteriya%208-3"
// Url.ВСтроку()
// "https://1c.ru/product/1s-buhgalteriya%25208-3"
// Url.ВКодированнуюСтроку()

Добавление сегмента пути с раскодированием значения:

знч Url = новый Url("https://1c.ru/product")
.СДобавлениемПути(["1s-buhgalteriya%208-3"], Истина)

// "https://1c.ru/product/1s-buhgalteriya 8-3"
// Url.ВСтроку()
// "https://1c.ru/product/1s-buhgalteriya%208-3"
// Url.ВКодированнуюСтроку()

СПараметрамиЗапроса

@ПроверятьИспользованиеЗначения
СПараметрамиЗапроса(ПараметрыЗапроса: ПараметрыUrl): Url
Перегрузка:
СПараметрамиЗапроса(ПараметрыЗапроса: Строка, РаскодироватьЗначение: Булево = Истина): Url

Возвращает копию объекта Url с указанными параметрами запроса.

  • ПараметрыЗапроса - параметры запроса URL-строки.

Исключения

ИсключениеНедопустимыйФормат - если параметры запроса некорректны.


СПараметрамиЗапроса

@ПроверятьИспользованиеЗначения
СПараметрамиЗапроса(
ПараметрыЗапроса: Строка,
РаскодироватьЗначение: Булево = Истина
): Url
Перегрузка:
СПараметрамиЗапроса(ПараметрыЗапроса: ПараметрыUrl): Url

Возвращает копию объекта Url с указанными параметрами запроса.

  • ПараметрыЗапроса - параметры запроса URL-строки (кодированный или не кодированный). Например, в виде строк param=data&param-two=value или ?param=данные&param-two=значение переменной.
  • РаскодироватьЗначение - Значение ПараметрыЗапроса будет предварительно раскодировано из URL кодировки, в противном случае значение будет использоваться "как есть".

Исключения

ИсключениеНедопустимыйФормат - если параметры запроса некорректны.


СПортом

Возвращает копию объекта Url с указанными портом.

  • Порт - Порт сервера (целое неотрицательное число).

Исключения

ИсключениеНедопустимыйФормат - если порт не корректен.


СПустымиДаннымиАутентификации

@ПроверятьИспользованиеЗначения
СПустымиДаннымиАутентификации(): Url
Возвращает копию объекта Url с пустыми данными аутентификации пользователя.


СПустымиПараметрамиЗапроса

@ПроверятьИспользованиеЗначения
СПустымиПараметрамиЗапроса(): Url
Возвращает копию объекта Url с пустыми параметрами запроса.


СПутем

@ПроверятьИспользованиеЗначения
СПутем(
Путь: Строка|ЧитаемыйМассив<Строка>,
РаскодироватьЗначение: Булево = Истина
): Url
Возвращает копию объекта с указанными путем.

  • Путь - Путь или список сегментов пути. Например, /app/data или раздел/подраздел. раздел/подраздел или "app", "data". Допустимо указывать кодированные или не кодированные значения.
  • РаскодироватьЗначение - Значение Путь будет предварительно раскодировано из URL кодировки, в противном случае значение будет использоваться "как есть".

Исключения

ИсключениеНедопустимыйФормат - если путь некорректен.


СХостом

Возвращает копию объекта Url с указанными хостом.

  • Хост - Адрес сервера (кодированный или не кодированный). Например, 1c.ru или сайт.рф.

Исключения

ИсключениеНедопустимыйФормат - если хост некорректен.


СЯкорем

@ПроверятьИспользованиеЗначения
СЯкорем(
Якорь: Строка,
РаскодироватьЗначение: Булево = Истина
): Url
Возвращает копию объекта Url с указанным якорем.

  • Якорь - Якорь URL-строки (кодированный или не кодированный). Например, header-main. Важно, что первый символ # считается как часть якоря, а не как разделитель.
  • РаскодироватьЗначение - Значение Якорь будет предварительно раскодировано из URL кодировки, в противном случае значение будет использоваться "как есть".

Исключения

ИсключениеНедопустимыйФормат - если якорь некорректен.


СоСхемой

Возвращает копию объекта Url с указанной схемой.

  • Схема - Схема протокола. Например, https.

Исключения

ИсключениеНедопустимыйФормат - если схема не валидна или не поддерживается.


Список унаследованных методов

Объект

ПолучитьТип, Представление