/// <summary> /// Dumps the specified request include headers. /// </summary> /// <param name="httpRequest">The HTTP request.</param> /// <param name="includeHeaders">if set to <c>true</c> [include headers].</param> /// <returns>System.String.</returns> public static string Dump(this HttpRequest httpRequest, bool includeHeaders = true) { MemoryStream memoryStream = new MemoryStream(); try { TextWriter writer = new StreamWriter(memoryStream); writer.Write(httpRequest.Method); writer.Write(httpRequest.HttpContext.Request.GetDisplayUrl()); // headers if (includeHeaders) { if (httpRequest.AsDynamic()._wr != null) { // real request -- add protocol writer.Write(" " + httpRequest.AsDynamic()._wr.GetHttpVersion() + "\r\n"); // headers writer.Write(httpRequest.AsDynamic().CombineAllHeaders(true)); } else { // manufactured request writer.Write("\r\n"); } } writer.Write("\r\n"); writer.Flush(); // entity body dynamic httpInputStream = httpRequest.AsDynamic().InputStream; httpInputStream.WriteTo(memoryStream); StreamReader reader = new StreamReader(memoryStream); return(reader.ReadToEnd()); } finally { memoryStream.Close(); } }