internal static string GetSignature()

in util/csharp/core/Common.cs [164:198]


        internal static string GetSignature(TeaRequest request, string accessKeySecret)
        {
            string resource = request.Pathname
                .Replace("%2F", "/")
                .Replace("%3F", "?")
                .Replace("%3D", "=")
                .Replace("%26", "&");

            List<string> sortedKeys = request.Query.Keys.ToList();
            var queryPairsList = new List<string>();

            sortedKeys.Sort();

            foreach (string key in sortedKeys)
            {
                string value = request.Query.Get(key);
                if (value == null)
                {
                    continue;
                }

                string valueStr = PercentEncode(value);
                valueStr = valueStr.Replace("'", "%27");
                queryPairsList.Add(key + "=" + valueStr);
            }

            String queryPairsString = Join(queryPairsList, "&");

            if (queryPairsString.Length > 0)
            {
                resource = resource + "?" + queryPairsString;
            }

            return GetSignedStr(request, resource, accessKeySecret);
        }