Condividi tramite


PolicyHttpMessageHandler Classe

Definizione

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à
PolicyHttpMessageHandler

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)

Si applica a