PolicyHttpMessageHandler Klass
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
En DelegatingHandler implementering som kör bearbetning av begäranden omgiven av en 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
- Arv
Kommentarer
Den här implementeringen av meddelandehanteraren stöder användningen av principer som tillhandahålls av Polly-biblioteket för hantering av tillfälliga fel och återhämtning.
Dokumentationen som tillhandahålls här är fokuserad vägledning för att använda Polly tillsammans med IHttpClientFactory. Auktoritativ information om Polly finns i Polly-projektet och dess dokumentation (https://github.com/app-vnext/Polly).
Tilläggsmetoderna på PollyHttpClientBuilderExtensions är utformade som ett bekvämt och korrekt sätt att skapa en PolicyHttpMessageHandler.
Metoden AddPolicyHandler(IHttpClientBuilder, IAsyncPolicy<HttpResponseMessage>) stöder skapandet av en PolicyHttpMessageHandler för alla typer av principer. Detta omfattar icke-reaktiva principer, till exempel Timeout eller Cache, som inte kräver att den underliggande begäran misslyckas först.
PolicyHttpMessageHandler och bekvämlighetsmetoderna PollyHttpClientBuilderExtensions accepterar endast den generiska IAsyncPolicy`1. Allmänna principinstanser kan skapas med hjälp av allmänna metoder Policy som TimeoutAsync``1(System.Int32).
Om du vill anpassa en befintlig icke-generisk IAsyncPolicyanvänder du kod som följande som konverterar en icke-generisk IAsyncPolicy policy till IAsyncPolicy`1:
policy.AsAsyncPolicy<HttpResponseMessage>()
Metoden AddTransientHttpErrorPolicy(IHttpClientBuilder, Func<PolicyBuilder<HttpResponseMessage>,IAsyncPolicy<HttpResponseMessage>>) är en åsiktsbaserad bekvämlighetsmetod som stöder tillämpningen av en princip för begäranden som misslyckas på grund av ett anslutningsfel eller serverfel (5XX HTTP-statuskod). Den här typen av metod stöder endast reaktiva principer som Återförsök, Kretsbrytare eller Återställning. Den här metoden tillhandahålls endast för enkelhetens skull. Vi rekommenderar att du skapar egna principer efter behov om detta inte uppfyller dina krav.
Var försiktig när du använder principer som Återförsök eller Timeout tillsammans eftersom HttpClient ger sin egen timeout via Timeout. När du kombinerar Återförsök och timeout Timeout fungerar det som en timeout för alla försök. En timeoutprincip för polly kan konfigureras efter en återförsöksprincip i konfigurationssekvensen för att ge en timeout per försök.
Alla principer som tillhandahålls av Polly är utformade för att vara effektiva när de används på ett långvarigt sätt. Vissa principer som Bulkhead och Circuit-Breaker underhålla tillstånd och bör begränsas mellan anrop som du vill dela skott eller Circuit-Breaker tillstånd. Se till att säkerställa rätt livslängd när du använder principer och meddelandehanterare tillsammans i anpassade scenarier. Tilläggsmetoderna som tillhandahålls av PollyHttpClientBuilderExtensions är utformade för att tilldela en lång livslängd till principer och se till att de kan användas när hanterarens rotationsfunktion är aktiv.
Kopplar PolicyHttpMessageHandler en kontext till HttpRequestMessage innan du kör en Policy, om det inte redan finns någon. Context Tillhandahålls till principen för användning i Policy och i andra meddelandehanterare.
Konstruktorer
| Name | Description |
|---|---|
| PolicyHttpMessageHandler(Func<HttpRequestMessage,IAsyncPolicy<HttpResponseMessage>>) |
Skapar en ny PolicyHttpMessageHandler. |
| PolicyHttpMessageHandler(IAsyncPolicy<HttpResponseMessage>) |
Skapar en ny PolicyHttpMessageHandler. |
Metoder
| Name | Description |
|---|---|
| SendAsync(HttpRequestMessage, CancellationToken) |
Skickar en HTTP-begäran till den inre hanteraren för att skicka till servern som en asynkron åtgärd. |
| SendCoreAsync(HttpRequestMessage, Context, CancellationToken) |
Anropas i körningen av för att utföra bearbetning av Policy begäranden. |