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 di DelegatingHandler che esegue l'elaborazione della richiesta racchiusa tra 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 .
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 PolicyHttpMessageHandler oggetto per qualsiasi tipo di criterio. Sono inclusi criteri non reattivi, ad esempio Timeout o Cache, che non richiedono prima che la richiesta sottostante non riesca.
PolicyHttpMessageHandlere i PollyHttpClientBuilderExtensions metodi pratici accettano solo il generico IAsyncPolicy`1 . È possibile creare istanze di criteri generici usando i metodi generici in Policy , TimeoutAsync``1(System.Int32)ad esempio .
Per adattare un oggetto non generico IAsyncPolicyesistente, usare codice simile al seguente:
policy.AsAsyncPolicy<HttpResponseMessage>()
Il AddTransientHttpErrorPolicy(IHttpClientBuilder, Func<PolicyBuilder<HttpResponseMessage>,IAsyncPolicy<HttpResponseMessage>>) metodo è un metodo pratico opinionato 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, perché HttpClient fornisce il proprio timeout tramite Timeout. Quando si combinano retry e timeout, Timeout fungerà da timeout per tutti i tentativi. I criteri polly Timeout possono essere configurati dopo un criterio Di ripetizione dei tentativi nella sequenza di configurazione per fornire un timeout per ogni tentativo.
Tutti i criteri forniti da Polly sono progettati per essere efficienti quando vengono 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 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.
Associa PolicyHttpMessageHandler un contesto a HttpRequestMessage prima di eseguire un Policyoggetto , se non ne esiste già uno. Verrà Context fornito al criterio per l'uso all'interno di Policy e in altri gestori di messaggi.
Costruttori
PolicyHttpMessageHandler(Func<HttpRequestMessage,IAsyncPolicy<HttpResponseMessage>>) |
Crea un nuovo oggetto PolicyHttpMessageHandler. |
PolicyHttpMessageHandler(IAsyncPolicy<HttpResponseMessage>) |
Crea un nuovo oggetto PolicyHttpMessageHandler. |
Proprietà
InnerHandler |
Ottiene o imposta il gestore interno che elabora i messaggi di risposta HTTP. (Ereditato da DelegatingHandler) |
Metodi
Dispose() |
Rilascia le risorse non gestite ed elimina le risorse gestite utilizzate dall'oggetto HttpMessageHandler. (Ereditato da HttpMessageHandler) |
Dispose(Boolean) |
Rilascia le risorse non gestite usate da DelegatingHandler e, facoltativamente, elimina le risorse gestite. (Ereditato da DelegatingHandler) |
Equals(Object) |
Determina se l'oggetto specificato è uguale all'oggetto corrente. (Ereditato da Object) |
GetHashCode() |
Funge da funzione hash predefinita. (Ereditato da Object) |
GetType() |
Ottiene l'oggetto Type dell'istanza corrente. (Ereditato da Object) |
MemberwiseClone() |
Crea una copia superficiale dell'oggetto Object corrente. (Ereditato da Object) |
Send(HttpRequestMessage, CancellationToken) |
Invia al gestore interno una richiesta HTTP da inviare al server. (Ereditato da DelegatingHandler) |
SendAsync(HttpRequestMessage, CancellationToken) |
Invia al gestore interno una richiesta HTTP da inviare al server come operazione asincrona. |
SendCoreAsync(HttpRequestMessage, Context, CancellationToken) |
Chiamato all'interno dell'esecuzione di Policy per eseguire l'elaborazione della richiesta. |
ToString() |
Restituisce una stringa che rappresenta l'oggetto corrente. (Ereditato da Object) |