Mesej Permintaan Log/Respons dalam HttpClient
Apabila melakukan permintaan POST dengan HttpClient, mendapatkan muatan JSON sebenar yang disiarkan boleh menjadi berharga untuk tujuan pengelogan . Daripada mensiri objek sendiri secara manual, pertimbangkan untuk menggunakan LoggingHandler tersuai.
Dengan memintas permintaan sebelum ia dikendalikan oleh HttpClientHandler, LoggingHandler menyediakan akses kepada permintaan dan mesej respons. Dalam kaedah ReadAsStringAsync, pemformat di dalam ObjectContent mensirikan objek, menghasilkan kandungan JSON yang anda cari.
Contoh 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; } }
Mengintegrasikan LoggingHandler dengan HttpClient:
HttpClient client = new HttpClient(new LoggingHandler(new HttpClientHandler())); HttpResponseMessage response = client.PostAsJsonAsync(url, "Hello, World!").Result;
Log Output:
Request: POST http://example.com/api/values Request Content: "Hello, World!" Response: 200 OK Response Content: "Hello, World!"
Atas ialah kandungan terperinci Bagaimanakah saya boleh Log Permintaan HTTP dan Mesej Respons dengan HttpClient dalam C#?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!