Как сбросить заголовки запроса ASP.NET в строку
Я хотел бы написать себе быстрый дамп заголовков запроса GET для отладки. Раньше я делал это в классическом ASP просто с объектом Request, но Request.ToString()
не работает. И следующий код возвратил пустую строку:
using (StreamReader reader = new StreamReader(Request.InputStream))
{
string requestHeaders = reader.ReadToEnd();
// ...
// send requestHeaders here
}
Ответы
Ответ 1
Посмотрите на свойство Headers в объекте Request.
С#
string headers = Request.Headers.ToString();
Или, если вы хотите отформатировать его каким-либо другим способом:
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()
Или:
Dim headers As String = String.Empty
For Each key In Request.Headers.AllKeys
headers &= key & "=" & Request.Headers(key) & Environment.NewLine
Next
Ответ 2
Вы можете включить трассировку на странице, чтобы увидеть заголовки, файлы cookie, переменные формы, querystring и безболезненно:
Верхняя строка начала aspx:
<%@ Page Language="C#" Trace="true"
Ответ 3
Ты можешь использовать,
string headers = Request.Headers.ToString();
Но он вернет URL-кодированную строку, поэтому для декодирования используйте код ниже,
String headers = HttpUtility.UrlDecode(Request.Headers.ToString())