How to dump ASP.NET Request headers to string
I'd like to email myself a quick dump of a GET request's headers for debugging. I used to be able to do this in classic ASP simply with the Request object, but Request.ToString()
doesn't work. And the following code returned an empty string:
using (StreamReader reader = new StreamReader(Request.InputStream))
{
string requestHeaders = reader.ReadToEnd();
// ...
// send requestHeaders here
}
Solution 1:
Have a look at the Headers property in the Request object.
C#
string headers = Request.Headers.ToString();
Or, if you want it formatted in some other way:
string headers = String.Empty;
foreach (var key in Request.Headers.AllKeys)
headers += key + "=" + Request.Headers[key] + Environment.NewLine;
VB.NET:
Dim headers = Request.Headers.ToString()
Or:
Dim headers As String = String.Empty
For Each key In Request.Headers.AllKeys
headers &= key & "=" & Request.Headers(key) & Environment.NewLine
Next
Solution 2:
You could turn on tracing on the page to see headers, cookies, form variables, querystring etc painlessly:
Top line of the aspx starting:
<%@ Page Language="C#" Trace="true"