Akamai.EdgeGrid.Auth.EdgeGridV1Signer.GetRequestHeaders C# (CSharp) Method

GetRequestHeaders() private method

private GetRequestHeaders ( NameValueCollection requestHeaders ) : string
requestHeaders System.Collections.Specialized.NameValueCollection
return string
        internal string GetRequestHeaders(NameValueCollection requestHeaders)
        {
            if (requestHeaders == null) return string.Empty;

            StringBuilder headers = new StringBuilder();
            foreach (string name in this.HeadersToInclude)
            {
                //TODO: should auto detect headers and remove standard non-http headers
                string value = requestHeaders.Get(name);
                if (!string.IsNullOrEmpty(value))
                    headers.AppendFormat("{0}:{1}\t", name, Regex.Replace(value.Trim(), "\\s+", " ", RegexOptions.Compiled));
            }
            return headers.ToString();
        }

Usage Example

        public void GetRequestHeaders()
        {
            EdgeGridV1Signer signer = new EdgeGridV1Signer(new List <string>()
            {
                "x-a", "x-b", "x-c"
            });

            Assert.AreEqual(String.Empty, signer.GetRequestHeaders(null));

            var headers = new NameValueCollection()
            {
            };

            Assert.AreEqual(String.Empty, signer.GetRequestHeaders(null));

            headers = new NameValueCollection()
            {
                { "name2", "value2" }
            };
            Assert.AreEqual(String.Empty, signer.GetRequestHeaders(null));

            headers = new NameValueCollection()
            {
                { "x-a", "value1" },
                { "name2", "value2" }
            };
            Assert.AreEqual("x-a:value1\t", signer.GetRequestHeaders(headers));

            headers = new NameValueCollection()
            {
                { "x-a", "va" },
                { "x-c", "\"     xc        \"" },
                { "x-b", "   w         b" }
            };
            Assert.AreEqual("x-a:va\tx-b:w b\tx-c:\" xc \"\t", signer.GetRequestHeaders(headers));
        }