예제 #1
0
        internal List <string> CompareHeaders(HTTPRequestHeaders left, HTTPRequestHeaders right)
        {
            var leftResult  = string.Empty;
            var rightResult = string.Empty;
            var leftOnly    = string.Empty;

            foreach (var head in left)
            {
                var sameInRight = right.FirstOrDefault(x => x.Name == head.Name);
                if (sameInRight == null)
                {
                    leftOnly += head.Name + ":" + head.Value + Environment.NewLine;
                }
                else
                {
                    if (head.Value != sameInRight.Value)
                    {
                        leftResult  += head.Name + ":" + head.Value + Environment.NewLine;
                        rightResult += sameInRight.Name + ":" + sameInRight.Value + Environment.NewLine;
                    }
                    right.Remove(sameInRight.Name);
                }
            }
            foreach (var head in right)
            {
                rightResult += head.Name + ":" + head.Value + Environment.NewLine;
            }
            return(new List <string> {
                leftResult + Environment.NewLine + leftOnly, rightResult
            });
        }
예제 #2
0
        internal List <string> CompareHeaders(string leftstring, string rightstring)
        {
            HTTPRequestHeaders left  = new HTTPRequestHeaders();
            HTTPRequestHeaders right = new HTTPRequestHeaders();

            foreach (var s in leftstring.Split('\n'))
            {
                if (string.IsNullOrEmpty(s) || s.Split(':').Length < 2)
                {
                    continue;
                }
                left.Add(s.Split(':')[0], s.Split(':')[1]);
            }
            foreach (var s in rightstring.Split('\n'))
            {
                if (string.IsNullOrEmpty(s) || s.Split(':').Length < 2)
                {
                    continue;
                }
                right.Add(s.Split(':')[0], s.Split(':')[1]);
            }

            var leftResult  = string.Empty;
            var rightResult = string.Empty;
            var leftOnly    = string.Empty;

            foreach (var head in left)
            {
                var sameInRight = right.FirstOrDefault(x => x.Name == head.Name);
                if (sameInRight == null)
                {
                    leftOnly += head.Name + ":" + head.Value + Environment.NewLine;
                }
                else
                {
                    if (head.Value != sameInRight.Value)
                    {
                        leftResult  += head.Name + ":" + head.Value + Environment.NewLine;
                        rightResult += sameInRight.Name + ":" + sameInRight.Value + Environment.NewLine;
                    }
                }
            }

            foreach (var head in right)
            {
                rightResult += head.Name + ":" + head.Value + Environment.NewLine;
            }
            return(new List <string> {
                leftResult + Environment.NewLine + leftOnly, rightResult
            });
        }
        /// <summary>
        /// Lookup the value of the specified header.
        /// </summary>
        /// <param name="headers">The HTTP request headers</param>
        /// <param name="headerName">The name of the header</param>
        /// <returns>The header value, or an empty string if it is not found</returns>
        private static string GetHeaderValue(HTTPRequestHeaders headers, string headerName)
        {
            var header = headers.FirstOrDefault(h => h.Name.Equals(headerName, StringComparison.InvariantCultureIgnoreCase));

            return(header != null ? header.Value : string.Empty);
        }