Rumah > pembangunan bahagian belakang > C++ > Bagaimanakah saya boleh Log Permintaan HTTP dan Mesej Respons dengan HttpClient dalam C#?

Bagaimanakah saya boleh Log Permintaan HTTP dan Mesej Respons dengan HttpClient dalam C#?

Linda Hamilton
Lepaskan: 2025-01-03 16:15:39
asal
988 orang telah melayarinya

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

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;
    }
}
Salin selepas log masuk

Mengintegrasikan LoggingHandler dengan HttpClient:

HttpClient client = new HttpClient(new LoggingHandler(new HttpClientHandler()));
HttpResponseMessage response = client.PostAsJsonAsync(url, "Hello, World!").Result;
Salin selepas log masuk

Log Output:

Request: POST http://example.com/api/values
Request Content: "Hello, World!"
Response: 200 OK
Response Content: "Hello, World!"
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan