Exemple #1
0
        /// <summary>
        /// 获取规范化的头信息
        /// </summary>
        /// <param name="builder">http 请求信息</param>
        /// <returns>规范化头信息字符串</returns>
        private string GetCanonicalizedHeaderString(SdkHttpFullRequestBuilder builder)
        {
            var           headers       = builder.GetHeaders();
            var           keys          = headers.Keys;
            List <string> keysList      = keys.ToList().OrderBy(p => p.ToLower(CultureInfo.GetCultureInfo("en-US"))).ToList();
            StringBuilder stringBuilder = new StringBuilder();

            foreach (var item in keysList)
            {
                if (ShouldExcludeHeaderFromSigning(item))
                {
                    continue;
                }
                string key = item.ToLower(CultureInfo.GetCultureInfo("en-US"));

                foreach (var headerValue in headers[item])
                {
                    string headerCompactedValue = StringUtils.AppendCompactedString(key);
                    stringBuilder.Append(key).Append(":");
                    if (headerValue != null)
                    {
                        string headerValueCompactedValue = StringUtils.AppendCompactedString(headerValue);
                        stringBuilder.Append(headerValueCompactedValue);
                    }
                    stringBuilder.Append("\n");
                }
            }


            return(stringBuilder.ToString());
        }
Exemple #2
0
        /// <summary>
        /// 获取规范化的头信息
        /// </summary>
        /// <param name="requestModel">签名请求信息</param>
        /// <returns>规范化头信息字符串</returns>
        private string GetCanonicalizedHeaderString(RequestModel requestModel)
        {
            var headers = requestModel.Header;

#if !NET20 && !NET30
            var           keys     = headers.Keys;
            List <string> keysList = keys.ToList().OrderBy(p => p.ToLower(CultureInfo.GetCultureInfo("en-US"))).ToList();
#else
            List <string> keysList = new List <string>();
            foreach (var item in headers.Keys)
            {
                keysList.Add(item);
            }
            keysList.Sort();
#endif
            StringBuilder stringBuilder = new StringBuilder();
            foreach (var item in keysList)
            {
                if (ShouldExcludeHeaderFromSigning(item))
                {
                    continue;
                }
                string key = item.ToLower(CultureInfo.GetCultureInfo("en-US"));

                foreach (var headerValue in headers[item])
                {
                    string headerCompactedValue = StringUtils.AppendCompactedString(key);
                    stringBuilder.Append(key).Append(":");
                    if (headerValue != null)
                    {
                        string headerValueCompactedValue = StringUtils.AppendCompactedString(headerValue);
                        stringBuilder.Append(headerValueCompactedValue);
                    }
                    stringBuilder.Append("\n");
                }
            }


            return(stringBuilder.ToString());
        }