В процессе разработки веб-приложений или работы с сетью часто возникает необходимость разобрать URL на составляющие части. Например, для получения данных о протоколе, хосте, пути и других параметрах из строки URL. В этой статье мы рассмотрим, как это сделать в Delphi.
Одним из простых способов разбора URL в Delphi является использование класса TIdURI, который входит в состав компоненты Indy. Этот класс предоставляет удобный интерфейс для работы с URL.
Пример использования TIdURI:
uses
..., IdURI;
var
URI: TIdURI;
begin
URI := TIdURI.Create('http://login:password@somehost.somedomain.com:8080/some_path/something_else.html?param1=val¶m2=val#nose');
try
// Доступ к составляющим URL
Writeln('Протокол:', URI.Protocol); // http
Writeln('Имя пользователя:', URI.Username); // login
Writeln('Пароль:', URI.Password); // password
Writeln('Хост:', URI.Host); // somehost.somedomain.com
Writeln('Порт:', URI.Port); // 8080
Writeln('Путь:', URI.Path); // /some_path/something_else.html
Writeln('Строка запроса:', URI.Params); // param1=val¶m2=val
Writeln('Фрагмент:', URI.Fragment); // nose
finally
URI.Free;
end;
end;
Использование WinInet
Если по какой-то причине вы не хотите использовать Indy, можно воспользоваться функцией InternetCrackUrl из библиотеки WinInet. Однако стоит учитывать, что это приведет к зависимости от Windows и WinInet.
Оба примера демонстрируют, как разобрать URL на сегменты в Delphi. Использование встроенного класса TIdURI является более предпочтительным вариантом, так как не зависит от внешних библиотек и проще в использовании. Однако, если у вас уже есть проект, использующий WinInet, можно воспользоваться функцией InternetCrackUrl.
Данный текст представляет собой инструкцию по разбору URL на сегменты в Delphi, с примерами использования встроенного класса TIdURI и функции InternetCrackUrl из библиотеки WinInet.
Комментарии и вопросы
Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS
Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.