PolicyHttpMessageHandler Classe

Définition

Implémentation de DelegatingHandler qui exécute un traitement de requête dans le cadre 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
PolicyHttpMessageHandler

Remarques

Cette implémentation du 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 erreurs temporaires.

La documentation fournie ici est axée sur l’utilisation de Polly avec le IHttpClientFactory. Consultez le projet Polly et sa documentation pour obtenir des informations faisant autorité sur 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 les stratégies non réactives, telles que le délai d’expiration ou le cache, qui ne nécessitent pas d’abord l’échec de la requête sous-jacente.

PolicyHttpMessageHandleret les PollyHttpClientBuilderExtensions méthodes pratiques n’acceptent que 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 suit :

policy.AsAsyncPolicy<HttpResponseMessage>()

La AddTransientHttpErrorPolicy(IHttpClientBuilder, Func<PolicyBuilder<HttpResponseMessage>,IAsyncPolicy<HttpResponseMessage>>) méthode est une méthode pratique qui prend en charge l’application d’une stratégie pour les demandes qui échouent en raison d’une défaillance de connexion ou d’une erreur de serveur (code http status 5XX). Ce type de méthode prend uniquement en charge les stratégies réactives telles que Réessayer, Circuit-Breaker ou Secours. Cette méthode n’est fournie qu’à des fins pratiques ; nous vous recommandons de créer vos propres stratégies si nécessaire si cela ne répond pas à vos besoins.

Soyez prudent lorsque vous utilisez des stratégies telles que Réessayer ou Délai d’expiration, car HttpClient fournit son propre délai d’expiration via Timeout. Lors de la combinaison de nouvelle tentative et de délai d’expiration, Timeout agit comme un délai d’expiration pour toutes les tentatives ; une stratégie Polly Timeout peut être configurée après une stratégie de nouvelle tentative dans la séquence de configuration, pour fournir un délai d’expiration par essai.

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 bulkhead et Circuit-Breaker maintenir l’état et doivent être étendues entre les appels que vous souhaitez partager l’état Bulkhead ou 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 attribuer une longue durée de vie aux stratégies et garantir qu’elles peuvent être utilisées lorsque la fonctionnalité de rotation du gestionnaire est active.

le PolicyHttpMessageHandler attache un contexte à avant d’exécuter HttpRequestMessage un Policy, s’il n’en existe pas déjà un. Le Context sera fourni à la stratégie pour une utilisation à l’intérieur et Policy dans d’autres gestionnaires de messages.

Constructeurs

PolicyHttpMessageHandler(Func<HttpRequestMessage,IAsyncPolicy<HttpResponseMessage>>)

Crée un PolicyHttpMessageHandler.

PolicyHttpMessageHandler(IAsyncPolicy<HttpResponseMessage>)

Crée un PolicyHttpMessageHandler.

Propriétés

InnerHandler

Obtient ou définit le gestionnaire interne qui traite les messages de réponse HTTP.

(Hérité de DelegatingHandler)

Méthodes

Dispose()

Libère les ressources non managées et supprime les ressources managées utilisées par le HttpMessageHandler.

(Hérité de HttpMessageHandler)
Dispose(Boolean)

Libère les ressources non managées utilisées par DelegatingHandler et supprime éventuellement les ressources managées.

(Hérité de DelegatingHandler)
Equals(Object)

Détermine si l'objet spécifié est égal à l'objet actuel.

(Hérité de Object)
GetHashCode()

Fait office de fonction de hachage par défaut.

(Hérité de Object)
GetType()

Obtient le Type de l'instance actuelle.

(Hérité de Object)
MemberwiseClone()

Crée une copie superficielle du Object actuel.

(Hérité de Object)
Send(HttpRequestMessage, CancellationToken)

Envoie une requête HTTP au gestionnaire interne à envoyer au serveur.

(Hérité de DelegatingHandler)
SendAsync(HttpRequestMessage, CancellationToken)

Envoie une requête HTTP au gestionnaire interne à envoyer au serveur au cours d’une opération asynchrone.

SendCoreAsync(HttpRequestMessage, Context, CancellationToken)

Appelée à l’intérieur de l’exécution de Policy pour effectuer le traitement de la requête.

ToString()

Retourne une chaîne qui représente l'objet actuel.

(Hérité de Object)

S’applique à