Maison > développement back-end > C++ > Comment puis-je enregistrer les messages de requête et de réponse HTTP avec HttpClient en C# ?

Comment puis-je enregistrer les messages de requête et de réponse HTTP avec HttpClient en C# ?

Linda Hamilton
Libérer: 2025-01-03 16:15:39
original
1055 Les gens l'ont consulté

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

Consignation des messages de demande/réponse dans HttpClient

Lors de l'exécution de requêtes POST avec HttpClient, l'obtention de la charge utile JSON réelle publiée peut être utile à des fins de journalisation . Au lieu de sérialiser manuellement l'objet vous-même, envisagez d'utiliser un LoggingHandler personnalisé.

En interceptant la requête avant qu'elle ne soit traitée par HttpClientHandler, LoggingHandler donne accès aux messages de requête et de réponse. Dans la méthode ReadAsStringAsync, le formateur à l'intérieur d'ObjectContent sérialise l'objet, ce qui donne le contenu JSON que vous recherchez.

Exemple de 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;
    }
}
Copier après la connexion

Intégration du LoggingHandler avec HttpClient :

HttpClient client = new HttpClient(new LoggingHandler(new HttpClientHandler()));
HttpResponseMessage response = client.PostAsJsonAsync(url, "Hello, World!").Result;
Copier après la connexion

Journal de sortie :

Request: POST http://example.com/api/values
Request Content: "Hello, World!"
Response: 200 OK
Response Content: "Hello, World!"
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal