PolicyHttpMessageHandler Třída
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
ImplementaceDelegatingHandler, která provádí zpracování požadavků obklopené .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
- Dědičnost
Poznámky
Tato implementace obslužné rutiny zpráv podporuje použití zásad poskytovaných knihovnou Polly pro zpracování přechodných chyb a odolnost.
Zde uvedená dokumentace je zaměřena na použití Polly společně s nástrojem IHttpClientFactory. Autoritativní informace o Polly najdete v projektu Polly a jeho dokumentaci (https://github.com/app-vnext/Polly).
Rozšiřující metody PollyHttpClientBuilderExtensions jsou navrženy jako pohodlný a správný způsob, jak vytvořit PolicyHttpMessageHandler.
Tato AddPolicyHandler(IHttpClientBuilder, IAsyncPolicy<HttpResponseMessage>) metoda podporuje vytvoření nějakého PolicyHttpMessageHandler druhu zásad. To zahrnuje nereaktivní zásady, jako je vypršení časového limitu nebo mezipaměť, které nevyžadují selhání podkladového požadavku.
PolicyHttpMessageHandler PollyHttpClientBuilderExtensions a metody pohodlí přijímají pouze obecný IAsyncPolicy`1. Obecné instance zásad lze vytvořit pomocí obecných metod Policy , například TimeoutAsync``1(System.Int32).
Chcete-li přizpůsobit existující ne generické IAsyncPolicy, použijte kód podobný následujícímu, který převede non-generic IAsyncPolicy policy na IAsyncPolicy`1:
policy.AsAsyncPolicy<HttpResponseMessage>()
Metoda AddTransientHttpErrorPolicy(IHttpClientBuilder, Func<PolicyBuilder<HttpResponseMessage>,IAsyncPolicy<HttpResponseMessage>>) je názorná metoda usnadnění, která podporuje použití zásad pro požadavky, které selžou kvůli selhání připojení nebo chybě serveru (stavový kód 5XX HTTP). Tento druh metody podporuje pouze reaktivní zásady, jako jsou opakování, jistič nebo náhradní. Tato metoda je poskytována pouze pro usnadnění; Pokud to nevyhovuje vašim požadavkům, doporučujeme podle potřeby vytvářet vlastní zásady.
Při používání zásad, jako je opakování nebo vypršení časového limitu společně, je třeba dbát na to, že HttpClient poskytuje vlastní časový limit prostřednictvím Timeout. Při kombinování opakování a časového limitu bude fungovat jako časový limit Timeout napříč všemi pokusy. Zásady časového limitu polly je možné nakonfigurovat po zásadách opakování v pořadí konfigurace, aby se zajistil časový limit pro jednotlivé pokusy.
Všechny zásady poskytované Polly jsou navrženy tak, aby byly efektivní, když se používají dlouhodobě. Některé zásady, jako je Bulkhead a Circuit-Breaker udržovat stav, a měly by být vymezeny napříč voláními, která chcete sdílet hromadně nebo Circuit-Breaker stav. Při použití zásad a obslužných rutin zpráv ve vlastních scénářích dbejte na to, aby se zajistily správné životnosti. Rozšiřující metody, které PollyHttpClientBuilderExtensions poskytuje, jsou navrženy tak, aby přiřazují zásady dlouhou životnost a zajistily, že je možné je použít, když je funkce rotace obslužné rutiny aktivní.
Připojí PolicyHttpMessageHandler kontext před HttpRequestMessage spuštěním objektu Policy, pokud ještě neexistuje. Poskytuje Context se zásadám pro použití uvnitř Policy a v jiných obslužných rutinách zpráv.
Konstruktory
| Name | Description |
|---|---|
| PolicyHttpMessageHandler(Func<HttpRequestMessage,IAsyncPolicy<HttpResponseMessage>>) |
Vytvoří novou PolicyHttpMessageHandler. |
| PolicyHttpMessageHandler(IAsyncPolicy<HttpResponseMessage>) |
Vytvoří novou PolicyHttpMessageHandler. |
Metody
| Name | Description |
|---|---|
| SendAsync(HttpRequestMessage, CancellationToken) |
Odešle požadavek HTTP vnitřní obslužné rutině, která se odešle na server jako asynchronní operace. |
| SendCoreAsync(HttpRequestMessage, Context, CancellationToken) |
Volá se uvnitř provádění Policy zpracování požadavků. |