PolicyHttpMessageHandler Classe
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Implementazione DelegatingHandler che esegue l'elaborazione delle richieste circondata da un oggetto 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
- Ereditarietà
Commenti
Questa implementazione del gestore di messaggi supporta l'uso dei criteri forniti dalla libreria Polly per la gestione degli errori temporanei e la resilienza.
La documentazione fornita qui è incentrata sull'uso di Polly insieme a IHttpClientFactory. Per informazioni autorevoli su Polly, vedere il progetto Polly e la relativa documentazione (https://github.com/app-vnext/Polly).
I metodi di estensione in PollyHttpClientBuilderExtensions sono progettati come un modo pratico e corretto per creare un oggetto PolicyHttpMessageHandler.
Il AddPolicyHandler(IHttpClientBuilder, IAsyncPolicy<HttpResponseMessage>) metodo supporta la creazione di un oggetto PolicyHttpMessageHandler per qualsiasi tipo di criterio. Sono inclusi criteri non reattivi, ad esempio Timeout o Cache, che non richiedono che la richiesta sottostante non riesca per prima.
PolicyHttpMessageHandler e i PollyHttpClientBuilderExtensions metodi pratici accettano solo il generico IAsyncPolicy`1. È possibile creare istanze di criteri generici usando i metodi generici in Policy , ad esempio TimeoutAsync``1(System.Int32).
Per adattare un oggetto non generico IAsyncPolicyesistente, usare codice simile al seguente che converte un oggetto non generico IAsyncPolicy policy in IAsyncPolicy`1:
policy.AsAsyncPolicy<HttpResponseMessage>()
Il AddTransientHttpErrorPolicy(IHttpClientBuilder, Func<PolicyBuilder<HttpResponseMessage>,IAsyncPolicy<HttpResponseMessage>>) metodo è un metodo pratico di opinione che supporta l'applicazione di un criterio per le richieste che hanno esito negativo a causa di un errore di connessione o di un errore del server (codice di stato HTTP 5XX). Questo tipo di metodo supporta solo criteri reattivi, ad esempio Retry, Circuit-Breaker o Fallback. Questo metodo viene fornito solo per praticità; è consigliabile creare criteri personalizzati in base alle esigenze, se non soddisfano i requisiti.
Prestare attenzione quando si usano criteri come Retry o Timeout insieme come HttpClient fornisce il proprio timeout tramite Timeout. Quando si combinano tentativi e timeout, Timeout fungerà da timeout tra tutti i tentativi. È possibile configurare un criterio di timeout polly dopo un criterio di ripetizione dei tentativi nella sequenza di configurazione per fornire un timeout per tentativo.
Tutti i criteri forniti da Polly sono progettati per essere efficienti quando usati in modo di lunga durata. Alcuni criteri, ad esempio Bulkhead e Circuit-Breaker mantenere lo stato e devono essere definiti nell'ambito tra le chiamate che si desidera condividere lo stato Bulkhead o Circuit-Breaker. Prestare attenzione a garantire la durata corretta quando si usano criteri e gestori di messaggi insieme in scenari personalizzati. I metodi di estensione forniti da PollyHttpClientBuilderExtensions sono progettati per assegnare una durata prolungata ai criteri e assicurarsi che possano essere usati quando la funzionalità di rotazione del gestore è attiva.
PolicyHttpMessageHandler Associa un contesto all'oggetto prima dell'esecuzione HttpRequestMessage di un Policyoggetto , se non ne esiste già uno. Viene Context fornito al criterio per l'uso all'interno di Policy e in altri gestori di messaggi.
Costruttori
| Nome | Descrizione |
|---|---|
| PolicyHttpMessageHandler(Func<HttpRequestMessage,IAsyncPolicy<HttpResponseMessage>>) |
Crea un nuovo PolicyHttpMessageHandleroggetto . |
| PolicyHttpMessageHandler(IAsyncPolicy<HttpResponseMessage>) |
Crea un nuovo PolicyHttpMessageHandleroggetto . |
Metodi
| Nome | Descrizione |
|---|---|
| SendAsync(HttpRequestMessage, CancellationToken) |
Invia una richiesta HTTP al gestore interno per l'invio al server come operazione asincrona. |
| SendCoreAsync(HttpRequestMessage, Context, CancellationToken) |
Chiamato all'interno dell'esecuzione di per eseguire l'elaborazione delle Policy richieste. |