PolicyHttpMessageHandler Osztály

Definíció

Egy DelegatingHandler olyan implementáció, amely a kérésfeldolgozást egy 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
Öröklődés
PolicyHttpMessageHandler

Megjegyzések

Ez az üzenetkezelő implementáció támogatja a Polly-kódtár által biztosított szabályzatok használatát az átmeneti hibák kezelésére és rugalmasságára.

Az itt található dokumentáció a Polly és a IHttpClientFactory. A Pollyval kapcsolatos mérvadó információkért tekintse meg a Polly-projektet és annak dokumentációját (https://github.com/app-vnext/Polly).

A bővítménymetszeteket PollyHttpClientBuilderExtensions úgy tervezték, hogy kényelmesen és helyesen hozzanak létre egy PolicyHttpMessageHandler.

A AddPolicyHandler(IHttpClientBuilder, IAsyncPolicy<HttpResponseMessage>) metódus bármilyen szabályzat létrehozását PolicyHttpMessageHandler támogatja. Ide tartoznak a nem reaktív szabályzatok, például az időtúllépés vagy a gyorsítótár, amelyek nem követelik meg, hogy az alapul szolgáló kérés először meghiúsuljon.

PolicyHttpMessageHandler és a kényelmi PollyHttpClientBuilderExtensions módszerek csak az általános IAsyncPolicy`1. Az általános házirendpéldányok az olyan általános metódusok Policy használatával hozhatók létre, mint például TimeoutAsync``1(System.Int32)a .

Meglévő nem általános IAsyncPolicykód adaptálásához használja a következőhöz hasonló kódot, amely átalakítja a nem általános IAsyncPolicy policy kódot a következővé IAsyncPolicy`1:

policy.AsAsyncPolicy<HttpResponseMessage>()

Ez AddTransientHttpErrorPolicy(IHttpClientBuilder, Func<PolicyBuilder<HttpResponseMessage>,IAsyncPolicy<HttpResponseMessage>>) a módszer egy véleményezett kényelmi módszer, amely támogatja egy szabályzat alkalmazását a kapcsolati hiba vagy kiszolgálóhiba miatt meghiúsult kérelmekre (5XX HTTP-állapotkód). Ez a módszer csak reaktív szabályzatokat támogat, például újrapróbálkozási, áramkör-megszakító vagy tartalék házirendeket. Ez a módszer csak a kényelem érdekében érhető el; javasoljuk, hogy szükség szerint hozzon létre saját szabályzatokat, ha ez nem felel meg a követelményeknek.

Ügyeljen arra, hogy olyan szabályzatokat használjon, mint az Újrapróbálkozás vagy az Időtúllépés, mivel a HttpClient saját időtúllépést biztosít.Timeout Az Újrapróbálkozás és az Időtúllépés Timeout kombinálásakor minden próbálkozásnál időtúllépésként fog működni. A lekérdezési időtúllépési szabályzatok a konfigurációs sorrendben lévő Újrapróbálkozási szabályzat után konfigurálhatók, hogy kipróbálásonként időtúllépést biztosítsanak.

A Polly által biztosított összes szabályzatot úgy tervezték, hogy hatékony legyen, ha hosszú élettartamú módon használják. Bizonyos szabályzatok, például a válaszfal és a Circuit-Breaker fenntartják az állapotot, és a válaszfal vagy Circuit-Breaker állapotot megosztani kívánt hívásokra kell kiterjedni. Ügyeljen arra, hogy az egyéni forgatókönyvekben a szabályzatok és üzenetkezelők együttes használata esetén a megfelelő élettartamot biztosítsa. Az általuk PollyHttpClientBuilderExtensions biztosított bővítménymetszeteket úgy tervezték, hogy hosszú élettartamot rendeljenek a szabályzatokhoz, és hogy a kezelőforgatási funkció aktív állapotában is használhatók legyenek.

A PolicyHttpMessageHandler rendszer a végrehajtás Policyelőtti környezethez HttpRequestMessage csatol egy környezetet, ha még nem létezik. A Context szabályzat a többi üzenetkezelőben való használatra Policy szolgál.

Konstruktorok

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

Létrehoz egy újat PolicyHttpMessageHandler.

PolicyHttpMessageHandler(IAsyncPolicy<HttpResponseMessage>)

Létrehoz egy újat PolicyHttpMessageHandler.

Metódusok

Name Description
SendAsync(HttpRequestMessage, CancellationToken)

HTTP-kérést küld a belső kezelőnek, amely aszinkron műveletként küldi el a kiszolgálónak.

SendCoreAsync(HttpRequestMessage, Context, CancellationToken)

A kérések Policy feldolgozásának végrehajtásán belül meghívva.

A következőre érvényes: