PolicyHttpMessageHandler Osztály
Definíció
Fontos
Egyes információk olyan, kiadás előtti termékekre vonatkoznak, amelyek a kiadásig még jelentősen módosulhatnak. A Microsoft nem vállal kifejezett vagy törvényi garanciát az itt megjelenő információért.
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
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. |