从 Inno 安装程序 Pascal 脚本中的 URL 解析主机名和协议



有没有办法从URL获取主机名和协议?

我的用例:

  1. 安装时,用户输入应用程序和 API URL
  2. 获取主机名allowedOrigins配置

示例网址:

https://somelink.com/#/login
https://someapilink.com/api/

期望的结果:

https://somelink.com
https://someapilink.com

如果你真的需要完整的URL解析,你可以使用ParseURLWinAPI函数。

但是,如果您只需要主机名和协议,我会自行解析URL:

function GetUrlHostName(Url: string): string;
var
P: Integer;
begin
Result := '';
P := Pos('://', Url);
if P > 0 then
begin
Result := Copy(Url, P + 3, Length(Url) - P - 1);
P := Pos('/', Result);
if P > 0 then Result := Copy(Result, 1, P - 1);
P := Pos('#', Result);
if P > 0 then Result := Copy(Result, 1, P - 1);
P := Pos(':', Result);
if P > 0 then Result := Copy(Result, 1, P - 1);
end;
end;
function GetUrlProtocol(Url: string): string;
var
P: Integer;
begin
Result := '';
P := Pos('://', Url);
if P > 0 then
begin
Result := Copy(Url, 1, P - 1);
end;
end;

(GetUrlHostName不考虑可能的用户名和密码(

相关内容

  • 没有找到相关文章

最新更新