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 }); }
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); }