Update HttpFmt.cs

This commit is contained in:
freekof 2026-02-01 14:16:13 +08:00 committed by GitHub
parent 6e2cd1c23e
commit b4a5d7ee29
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -7,6 +7,11 @@ public class HttpFmt : BaseFmt
return value.Replace('', ':');
}
private static string EncodeUserInfoPart(string value)
{
return Uri.EscapeDataString(value);
}
public static ProfileItem? Resolve(string str, out string msg)
{
msg = ResUI.ConfigurationFormatIncorrect;
@ -41,13 +46,15 @@ public class HttpFmt : BaseFmt
var userInfo = string.Empty;
if (item.Security.IsNotEmpty() && item.Id.IsNotEmpty())
{
userInfo = $"{NormalizeColon(item.Security)}:{NormalizeColon(item.Id)}";
var security = EncodeUserInfoPart(NormalizeColon(item.Security));
var id = EncodeUserInfoPart(NormalizeColon(item.Id));
userInfo = $"{security}:{id}";
}
var protocol = item.StreamSecurity == "tls" ? "https://" : "http://";
if (userInfo.IsNotEmpty())
{
return $"{protocol}{Utils.UrlEncode(userInfo)}@{GetIpv6(NormalizeColon(item.Address))}:{item.Port}{remark}";
return $"{protocol}{userInfo}@{GetIpv6(NormalizeColon(item.Address))}:{item.Port}{remark}";
}
else
{