Ajouter un HttpClient avec un gestionnaire dans .NET 6
Introduction
Dans le développement d'applications .NET 6, il est courant d'utiliser HttpClient
pour effectuer des requêtes HTTP. Cependant, pour des scénarios plus complexes, vous pouvez avoir besoin d'un plus grand contrôle sur le comportement du client. C'est là que les gestionnaires HttpClient
entrent en jeu.
Les gestionnaires HttpClient
vous permettent d'intercepter et de modifier les requêtes et les réponses HTTP avant et après leur exécution. Ils peuvent être utilisés pour des tâches telles que :
- Ajouter des en-têtes personnalisés
- Authentification
- Logging
- Gestion des erreurs
- Contrôle du cache
Création d'un gestionnaire HttpClient
Voici un exemple de création d'un gestionnaire HttpClient
personnalisé :
public class MyHttpClientHandler : HttpClientHandler
{
protected override async Task SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)
{
// Ajouter des en-têtes personnalisés
request.Headers.Add("My-Custom-Header", "Value");
// Effectuer la requête
var response = await base.SendAsync(request, cancellationToken);
// Vérifier le code de statut et gérer les erreurs
if (!response.IsSuccessStatusCode)
{
// Gérer l'erreur
}
return response;
}
}
Dans cet exemple, le gestionnaire MyHttpClientHandler
intercepte chaque requête et ajoute un en-tête personnalisé. Il vérifie également le code de statut de la réponse et gère les erreurs potentielles.
Utilisation du gestionnaire HttpClient
Une fois le gestionnaire HttpClient
créé, vous pouvez l'utiliser pour créer une instance de HttpClient
:
using var client = new HttpClient(new MyHttpClientHandler());
Maintenant, toutes les requêtes effectuées via client
seront traitées par le gestionnaire personnalisé.
Configuration du gestionnaire HttpClient
dans le code
Vous pouvez également configurer le gestionnaire HttpClient
dans le code en utilisant les services d'injection de dépendances :
public void ConfigureServices(IServiceCollection services)
{
// Ajouter le gestionnaire HttpClient
services.AddHttpClient("MyClient", client =>
{
client.BaseAddress = new Uri("https://api.example.com/");
client.Timeout = TimeSpan.FromSeconds(10);
client.DefaultRequestHeaders.Add("Accept", "application/json");
})
.ConfigureHttpClient(client =>
{
client.Handler = new MyHttpClientHandler();
});
}
Cet exemple configure un client nommé "MyClient" avec un gestionnaire MyHttpClientHandler
personnalisé.
Conclusion
L'utilisation de gestionnaires HttpClient
vous permet d'avoir un meilleur contrôle sur le comportement de vos requêtes HTTP dans .NET 6. Vous pouvez les utiliser pour une variété de tâches, notamment l'ajout d'en-têtes personnalisés, l'authentification et la gestion des erreurs.
N'oubliez pas de choisir le type de gestionnaire approprié pour vos besoins.
En utilisant les gestionnaires HttpClient
de manière efficace, vous pouvez améliorer la fiabilité, la sécurité et la performance de vos applications .NET.