PolicyHttpMessageHandler Classe
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Implémentation DelegatingHandler qui exécute le traitement des demandes entouré d’un Policy.
public ref class PolicyHttpMessageHandler : System::Net::Http::DelegatingHandler
public class PolicyHttpMessageHandler : System.Net.Http.DelegatingHandler
type PolicyHttpMessageHandler = class
inherit DelegatingHandler
Public Class PolicyHttpMessageHandler
Inherits DelegatingHandler
- Héritage
Remarques
Cette implémentation de gestionnaire de messages prend en charge l’utilisation des stratégies fournies par la bibliothèque Polly pour la gestion et la résilience des pannes temporaires.
La documentation fournie ici est axée sur l’utilisation de Polly avec le IHttpClientFactory. Pour obtenir des informations faisant autorité sur Polly, consultez le projet Polly et sa documentation (https://github.com/app-vnext/Polly).
Les méthodes d’extension sur PollyHttpClientBuilderExtensions sont conçues comme un moyen pratique et correct de créer un PolicyHttpMessageHandler.
La AddPolicyHandler(IHttpClientBuilder, IAsyncPolicy<HttpResponseMessage>) méthode prend en charge la création d’une PolicyHttpMessageHandler stratégie pour n’importe quel type de stratégie. Cela inclut des stratégies non réactives, telles que le délai d’expiration ou le cache, qui ne nécessitent pas l’échec de la demande sous-jacente en premier.
PolicyHttpMessageHandler et les PollyHttpClientBuilderExtensions méthodes pratiques acceptent uniquement le générique IAsyncPolicy`1. Les instances de stratégie générique peuvent être créées à l’aide des méthodes génériques sur Policy telles que TimeoutAsync``1(System.Int32).
Pour adapter un code non générique IAsyncPolicyexistant, utilisez du code comme celui-ci qui convertit un non générique IAsyncPolicy policy en IAsyncPolicy`1:
policy.AsAsyncPolicy<HttpResponseMessage>()
La AddTransientHttpErrorPolicy(IHttpClientBuilder, Func<PolicyBuilder<HttpResponseMessage>,IAsyncPolicy<HttpResponseMessage>>) méthode est une méthode pratique avisée qui prend en charge l’application d’une stratégie pour les requêtes qui échouent en raison d’une défaillance de connexion ou d’une erreur de serveur (code d’état HTTP 5XX). Ce type de méthode prend uniquement en charge les stratégies réactives telles que Retry, Circuit-Breaker ou Fallback. Cette méthode n’est fournie qu’à des fins pratiques ; nous vous recommandons de créer vos propres stratégies si cela ne répond pas à vos besoins.
Prenez soin d’utiliser des stratégies telles que Retry ou Timeout ensemble, car HttpClient fournit son propre délai d’attente via Timeout. Lors de la combinaison d’une nouvelle tentative et d’un délai d’expiration, Timeout il agit comme délai d’attente pour toutes les tentatives ; une stratégie de délai d’attente Polly peut être configurée après une stratégie de nouvelle tentative dans la séquence de configuration, pour fournir un délai d’attente par tentative.
Toutes les stratégies fournies par Polly sont conçues pour être efficaces lorsqu’elles sont utilisées de manière durable. Certaines stratégies telles que le bulkhead et le Circuit-Breaker conservent l’état et doivent être étendues entre les appels que vous souhaitez partager la cloison ou l’état Circuit-Breaker. Veillez à garantir les durées de vie correctes lors de l’utilisation de stratégies et de gestionnaires de messages dans des scénarios personnalisés. Les méthodes d’extension fournies par PollyHttpClientBuilderExtensions sont conçues pour affecter une durée de vie longue aux stratégies et s’assurer qu’elles peuvent être utilisées lorsque la fonctionnalité de rotation du gestionnaire est active.
L’élément PolicyHttpMessageHandler attache un contexte au HttpRequestMessage préalable à l’exécution d’un Policy, s’il n’existe pas déjà. La Context stratégie est fournie pour une utilisation à l’intérieur Policy et dans d’autres gestionnaires de messages.
Constructeurs
| Nom | Description |
|---|---|
| PolicyHttpMessageHandler(Func<HttpRequestMessage,IAsyncPolicy<HttpResponseMessage>>) |
Crée un nouveau PolicyHttpMessageHandler. |
| PolicyHttpMessageHandler(IAsyncPolicy<HttpResponseMessage>) |
Crée un nouveau PolicyHttpMessageHandler. |
Méthodes
| Nom | Description |
|---|---|
| SendAsync(HttpRequestMessage, CancellationToken) |
Envoie une requête HTTP au gestionnaire interne pour l’envoyer au serveur en tant qu’opération asynchrone. |
| SendCoreAsync(HttpRequestMessage, Context, CancellationToken) |
Appelé à l’intérieur de l’exécution du Policy traitement des demandes. |