in aliyun-net-credentials/Utils/ParameterHelper.cs [106:128]
public static string ComposeStringToSign(MethodType method, Dictionary<string, string> queries)
{
IDictionary<string, string> sortedDictionary =
new SortedDictionary<string, string>(queries, StringComparer.Ordinal);
var canonicalizedQueryString = new StringBuilder();
foreach (var p in sortedDictionary)
{
canonicalizedQueryString.Append("&")
.Append(AcsURLEncoder.PercentEncode(p.Key)).Append("=")
.Append(AcsURLEncoder.PercentEncode(p.Value));
}
var stringToSign = new StringBuilder();
stringToSign.Append(method.ToString());
stringToSign.Append(Separator);
stringToSign.Append(AcsURLEncoder.PercentEncode("/"));
stringToSign.Append(Separator);
stringToSign.Append(AcsURLEncoder.PercentEncode(
canonicalizedQueryString.ToString().Substring(1)));
return stringToSign.ToString();
}