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 中国語 Web サイトの他の関連記事を参照してください。