반응형
ASP.NET 요청 헤더를 문자열로 덤프하는 방법
디버깅을 위해 GET 요청 헤더의 빠른 덤프를 이메일로 보내고 싶습니다.클래식 ASP에서는 Request 객체만으로 이 작업을 수행할 수 있었지만,Request.ToString()
작동하지 않습니다.다음 코드가 빈 문자열을 반환했습니다.
using (StreamReader reader = new StreamReader(Request.InputStream))
{
string requestHeaders = reader.ReadToEnd();
// ...
// send requestHeaders here
}
Request 개체의 Headers 속성을 확인합니다.
C#
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
페이지에서 추적 기능을 설정하여 헤더, 쿠키, 폼 변수, 쿼리 문자열 등을 쉽게 볼 수 있습니다.
aspx 시작의 맨 위 줄:
<%@ Page Language="C#" Trace="true"
(나와 같은) 부재로 어려움을 겪고 있는 사람들을 위해.AllKeys
의 재산.IHeaderDictionary
구현(컨트롤러 작업 내부에서) 이렇게 문자열의 모든 헤더를 직렬화할 수 있었습니다.
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();
ASP.NET Core 3.1을 사용하고 있습니다.
당신은 사용할 수 있습니다.
string headers = Request.Headers.ToString();
그러나 아래 코드를 사용하여 디코딩할 수 있도록 URL 인코딩 문자열을 반환합니다.
String headers = HttpUtility.UrlDecode(Request.Headers.ToString())
asp.net core
침을 뱉다Microsoft.AspNetCore.HttpSys.Internal.RequestHeaders
위해서Request.Headers.ToString()
따라서 이러한 맥락에서 해결책은 다음과 같습니다.
IEnumerable<string> keyValues = context.Request.Headers.Keys.Select(key => key + ": " + string.Join(",", context.Request.Headers[key]));
string requestHeaders = string.Join(System.Environment.NewLine, keyValues);
이것(VB)을 사용하여 모든 헤더를 한 번에 string()으로 가져올 수 있습니다.네트)
Request.Headers.ToString.Split(New String() {vbCrLf}, StringSplitOptions.RemoveEmptyEntries)
.Net 6.0 이상:
public virtual IActionResult Headers()
{
System.Text.StringBuilder sb = new();
foreach (var key in _httpContext.HttpContext.Request.Headers)
{
sb.Append(key.Key);
sb.Append("=");
sb.AppendLine(key.Value);
}
return Ok(sb.ToString());
}
언급URL : https://stackoverflow.com/questions/2628584/how-to-dump-asp-net-request-headers-to-string
반응형
'source' 카테고리의 다른 글
깃허브에서 포킹과 클로닝의 차이점은 무엇입니까? (0) | 2023.06.26 |
---|---|
Angular에서 http 요청이 끝날 때까지 기다리는 방법은 무엇입니까? (0) | 2023.06.21 |
EC2에서 SQS 액세스 - 인스턴스 프로파일 대 역할 (0) | 2023.06.21 |
corc++을 위한 단순한 2D 교차 플랫폼 그래픽 라이브러리? (0) | 2023.06.21 |
pod repo update는 정확히 어떤 역할을 합니까? (0) | 2023.06.21 |