private static string CanonicalizeHeaders()

in src/AlibabaCloud.OSS.V2/Signer/SignerV4.cs [256:280]


        private static string CanonicalizeHeaders(IDictionary<string, string> headers, List<string> additionalHeaders)
        {
            if (headers.Count == 0)
                return string.Empty;

            var addHeadersMap = new Dictionary<string, string>();
            foreach (var header in additionalHeaders) addHeadersMap[header.ToLowerInvariant()] = string.Empty;

            var sortedHeaderMap = new SortedDictionary<string, string>(StringComparer.Ordinal);

            foreach (var header in headers)
            {
                if (header.Value == null) continue;
                var lowerKey = header.Key.ToLowerInvariant();

                if (IsDefaultSignedHeader(lowerKey) ||
                    addHeadersMap.ContainsKey(lowerKey))
                    sortedHeaderMap[lowerKey] = header.Value.Trim();
            }

            var sb = new StringBuilder();
            foreach (var header in sortedHeaderMap) sb.AppendFormat("{0}:{1}\n", header.Key, header.Value.Trim());

            return sb.ToString();
        }