有没有办法从URL获取主机名和协议?
我的用例:
- 安装时,用户输入应用程序和 API URL
- 获取主机名
allowedOrigins
配置
示例网址:
https://somelink.com/#/login
https://someapilink.com/api/
期望的结果:
https://somelink.com
https://someapilink.com
如果你真的需要完整的URL解析,你可以使用ParseURL
WinAPI函数。
但是,如果您只需要主机名和协议,我会自行解析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
不考虑可能的用户名和密码(