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 중국어 웹사이트의 기타 관련 기사를 참조하세요!