How to dump ASP.NET Request headers to string
For those (like me) having troubles with the absence of AllKeys
property in IHeaderDictionary
implementation, this is the way I was able to serialize all headers in a string (inside a controller action).
using System;
using System.Text;
// ...
var builder = new StringBuilder(Environment.NewLine);
foreach (var header in Request.Headers)
{
builder.AppendLine($"{header.Key}: {header.Value}");
}
var headersDump = builder.ToString();
I'm using ASP.NET Core 3.1.
You can use,
string headers = Request.Headers.ToString();
But It will return URL encoded string so to decode it use below code,
String headers = HttpUtility.UrlDecode(Request.Headers.ToString())
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"
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