> 백엔드 개발 > C++ > C#에서 HttpClient를 사용하여 HTTP 요청 및 응답 메시지를 기록하려면 어떻게 해야 합니까?

C#에서 HttpClient를 사용하여 HTTP 요청 및 응답 메시지를 기록하려면 어떻게 해야 합니까?

Linda Hamilton
풀어 주다: 2025-01-03 16:15:39
원래의
988명이 탐색했습니다.

How Can I Log HTTP Request and Response Messages with HttpClient in C#?

HttpClient에서 요청/응답 메시지 로깅

HttpClient로 POST 요청을 수행할 때 게시된 실제 JSON 페이로드를 얻는 것은 로깅 목적에 유용할 수 있습니다. . 객체를 수동으로 직렬화하는 대신 사용자 정의 LoggingHandler를 활용하는 것이 좋습니다.

HttpClientHandler에서 요청을 처리하기 전에 요청을 가로채서 LoggingHandler는 요청 및 응답 메시지에 대한 액세스를 제공합니다. ReadAsStringAsync 메서드에서 ObjectContent 내부의 포맷터는 객체를 직렬화하여 사용자가 찾는 JSON 콘텐츠를 얻습니다.

LoggingHandler의 예:

public class LoggingHandler : DelegatingHandler
{
    protected override async Task<HttpResponseMessage> SendAsync(...)
    {
        Console.WriteLine($"Request: {request}");
        Console.WriteLine($"Request Content: {await request.Content.ReadAsStringAsync()}");

        HttpResponseMessage response = await base.SendAsync(...);

        Console.WriteLine($"Response: {response}");
        Console.WriteLine($"Response Content: {await response.Content.ReadAsStringAsync()}");

        return response;
    }
}
로그인 후 복사

LoggingHandler를 다음과 통합 HttpClient:

HttpClient client = new HttpClient(new LoggingHandler(new HttpClientHandler()));
HttpResponseMessage response = client.PostAsJsonAsync(url, "Hello, World!").Result;
로그인 후 복사

출력 로그:

Request: POST http://example.com/api/values
Request Content: "Hello, World!"
Response: 200 OK
Response Content: "Hello, World!"
로그인 후 복사

위 내용은 C#에서 HttpClient를 사용하여 HTTP 요청 및 응답 메시지를 기록하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿