PolicyHttpMessageHandler Klas

Definitie

Een DelegatingHandler implementatie waarmee de verwerking van aanvragen wordt uitgevoerd, omgeven door een 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
Overname
PolicyHttpMessageHandler

Opmerkingen

Deze berichthandler-implementatie ondersteunt het gebruik van beleidsregels die door de Polly-bibliotheek worden geleverd voor afhandeling van tijdelijke fouten en tolerantie.

De documentatie die hier wordt gegeven, is gerichte richtlijnen voor het gebruik van Polly samen met de IHttpClientFactory. Zie het Polly-project en de bijbehorende documentatie (https://github.com/app-vnext/Polly) voor bindende informatie over Polly.

De extensiemethoden PollyHttpClientBuilderExtensions zijn ontworpen als een handige en juiste manier om een PolicyHttpMessageHandler.

De AddPolicyHandler(IHttpClientBuilder, IAsyncPolicy<HttpResponseMessage>) methode ondersteunt het maken van een PolicyHttpMessageHandler voor elk soort beleid. Dit omvat niet-reactief beleid, zoals Time-out of Cache, waarvoor de onderliggende aanvraag niet eerst hoeft te mislukken.

PolicyHttpMessageHandler en de PollyHttpClientBuilderExtensions gemaksmethoden accepteren alleen de algemene IAsyncPolicy`1. Algemene beleidsexemplaren kunnen worden gemaakt met behulp van de algemene methoden, Policy zoals TimeoutAsync``1(System.Int32).

Als u een bestaand niet-algemeen IAsyncPolicywilt aanpassen, gebruikt u code zoals de volgende code waarmee een niet-algemeen IAsyncPolicy policy bestand wordt geconverteerd naar IAsyncPolicy`1:

policy.AsAsyncPolicy<HttpResponseMessage>()

De AddTransientHttpErrorPolicy(IHttpClientBuilder, Func<PolicyBuilder<HttpResponseMessage>,IAsyncPolicy<HttpResponseMessage>>) methode is een adviesmethode die ondersteuning biedt voor de toepassing van een beleid voor aanvragen die mislukken vanwege een verbindingsfout of serverfout (5XX HTTP-statuscode). Dit type methode ondersteunt alleen reactief beleid, zoals Opnieuw proberen, Circuitonderbreker of Terugval. Deze methode wordt alleen voor het gemak verstrekt; we raden u aan uw eigen beleid indien nodig te maken als dit niet aan uw vereisten voldoet.

Zorg ervoor dat u beleid zoals Opnieuw proberen of Time-out samen gebruikt, omdat HttpClient een eigen time-out biedt via Timeout. Wanneer u nieuwe pogingen en time-outs combineert, Timeout fungeert dit als een time-out voor alle pogingen. Een Beleid voor Polly Time-out kan worden geconfigureerd na een beleid voor opnieuw proberen in de configuratiereeks om een time-out per poging te bieden.

Alle beleidsregels van Polly zijn ontworpen om efficiƫnt te zijn wanneer ze op lange termijn worden gebruikt. Bepaalde beleidsregels, zoals bulkhead en Circuit-Breaker status behouden, en moeten worden afgestemd op aanroepen die u wilt delen van het schot of Circuit-Breaker status. Zorg ervoor dat de juiste levensduur wordt gegarandeerd bij het gebruik van beleidsregels en berichthandlers in aangepaste scenario's. De extensiemethoden die worden geleverd, PollyHttpClientBuilderExtensions zijn ontworpen om een lange levensduur toe te wijzen aan beleidsregels en ervoor te zorgen dat ze kunnen worden gebruikt wanneer de handlerrotatiefunctie actief is.

De PolicyHttpMessageHandler bijlage voegt een context toe aan de HttpRequestMessage voordat u een Policy, als deze nog niet bestaat. Het Context beleid wordt verstrekt voor gebruik in de Policy en andere berichtenhandlers.

Constructors

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

Hiermee maakt u een nieuwe PolicyHttpMessageHandler.

PolicyHttpMessageHandler(IAsyncPolicy<HttpResponseMessage>)

Hiermee maakt u een nieuwe PolicyHttpMessageHandler.

Methoden

Name Description
SendAsync(HttpRequestMessage, CancellationToken)

Verzendt een HTTP-aanvraag naar de binnenhandler die als asynchrone bewerking naar de server wordt verzonden.

SendCoreAsync(HttpRequestMessage, Context, CancellationToken)

Aangeroepen binnen de uitvoering van de Policy om aanvraagverwerking uit te voeren.

Van toepassing op