in src/Microsoft.Azure.SignalR.Common/Utilities/RestClient.cs [94:122]
private static Uri GetUri(string url, IDictionary<string, StringValues>? query)
{
if (query == null || query.Count == 0)
{
return new Uri(url);
}
var builder = new UriBuilder(url);
var sb = new StringBuilder(builder.Query);
if (sb.Length == 1 && sb[0] == '?')
{
sb.Clear();
}
else if (sb.Length > 0 && sb[0] != '?')
{
sb.Insert(0, '?');
}
foreach (var item in query)
{
foreach (var value in item.Value)
{
sb.Append(sb.Length > 0 ? '&' : '?');
sb.Append(Uri.EscapeDataString(item.Key));
sb.Append('=');
sb.Append(Uri.EscapeDataString(value!));
}
}
builder.Query = sb.ToString();
return builder.Uri;
}