Heim > Backend-Entwicklung > C++ > Wie kann ich HTTP-Anforderungs- und Antwortnachrichten mit HttpClient in C# protokollieren?

Wie kann ich HTTP-Anforderungs- und Antwortnachrichten mit HttpClient in C# protokollieren?

Linda Hamilton
Freigeben: 2025-01-03 16:15:39
Original
988 Leute haben es durchsucht

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

Anforderungs-/Antwortnachrichten in HttpClient protokollieren

Beim Ausführen von POST-Anfragen mit HttpClient kann das Abrufen der tatsächlich geposteten JSON-Nutzlast für Protokollierungszwecke hilfreich sein . Anstatt das Objekt selbst manuell zu serialisieren, sollten Sie die Verwendung eines benutzerdefinierten LoggingHandlers in Betracht ziehen.

Durch das Abfangen der Anforderung, bevor sie von HttpClientHandler verarbeitet wird, bietet LoggingHandler Zugriff auf die Anforderungs- und Antwortnachrichten. In der ReadAsStringAsync-Methode serialisiert der Formatierer im ObjectContent das Objekt, was zu dem gesuchten JSON-Inhalt führt.

Beispiel für einen 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;
    }
}
Nach dem Login kopieren

Integration des LoggingHandlers mit HttpClient:

HttpClient client = new HttpClient(new LoggingHandler(new HttpClientHandler()));
HttpResponseMessage response = client.PostAsJsonAsync(url, "Hello, World!").Result;
Nach dem Login kopieren

Ausgabeprotokoll:

Request: POST http://example.com/api/values
Request Content: "Hello, World!"
Response: 200 OK
Response Content: "Hello, World!"
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie kann ich HTTP-Anforderungs- und Antwortnachrichten mit HttpClient in C# protokollieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage