PolicyHttpMessageHandler Klasa

Definicja

Implementacja DelegatingHandler , która wykonuje przetwarzanie żądań w otoczeniu elementu 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
Dziedziczenie
PolicyHttpMessageHandler

Uwagi

Ta implementacja programu obsługi komunikatów obsługuje korzystanie z zasad udostępnianych przez bibliotekę Polly na potrzeby obsługi przejściowych błędów i odporności.

Dokumentacja udostępniona w tym miejscu koncentruje się na korzystaniu z usługi Polly razem z usługą IHttpClientFactory. Zobacz projekt Polly i jego dokumentację , aby uzyskać autorytatywne informacje na temat usługi Polly.

Metody rozszerzenia są PollyHttpClientBuilderExtensions zaprojektowane jako wygodny i poprawny sposób tworzenia .PolicyHttpMessageHandler

Metoda AddPolicyHandler(IHttpClientBuilder, IAsyncPolicy<HttpResponseMessage>) obsługuje tworzenie obiektu PolicyHttpMessageHandler dla dowolnego rodzaju zasad. Obejmuje to nieaktywne zasady, takie jak limit czasu lub pamięć podręczna, które nie wymagają uprzedniego niepowodzenia bazowego żądania.

PolicyHttpMessageHandler i metody wygody PollyHttpClientBuilderExtensions akceptują tylko ogólne IAsyncPolicy`1metody . Wystąpienia zasad ogólnych można utworzyć przy użyciu metod ogólnych, takich Policy jak TimeoutAsync``1(System.Int32).

Aby dostosować istniejącą niegeneryjną metodę IAsyncPolicy, użyj kodu podobnego do następującego:

policy.AsAsyncPolicy<HttpResponseMessage>()

Metoda AddTransientHttpErrorPolicy(IHttpClientBuilder, Func<PolicyBuilder<HttpResponseMessage>,IAsyncPolicy<HttpResponseMessage>>) jest uważaną metodą wygody, która obsługuje stosowanie zasad dla żądań, które kończą się niepowodzeniem z powodu błędu połączenia lub błędu serwera (kod stanu HTTP 5XX). Ten rodzaj metody obsługuje tylko reaktywne zasady, takie jak Ponawianie, Circuit-Breaker lub Rezerwa. Ta metoda jest udostępniana tylko dla wygody; Zalecamy utworzenie własnych zasad zgodnie z potrzebami, jeśli nie spełnia to Twoich wymagań.

Należy zachować ostrożność podczas używania zasad, takich jak ponawianie próby lub przekroczenie limitu czasu, ponieważ klient HttpClient zapewnia własny limit czasu za pośrednictwem metody Timeout. Podczas łączenia opcji Ponawianie i Limit Timeout czasu będzie działać jako limit czasu we wszystkich próbach. Zasady limitu czasu sondowania można skonfigurować po zasadach ponawiania prób w sekwencji konfiguracji, aby zapewnić limit czasu na próbę.

Wszystkie zasady udostępniane przez usługę Polly są zaprojektowane tak, aby były wydajne w przypadku długotrwałego użycia. Niektóre zasady, takie jak bulkhead i Circuit-Breaker zachować stan i powinny być ograniczone do różnych wywołań, które mają być współużytkowane bulkhead lub Circuit-Breaker stanu. Zadbaj o to, aby zapewnić prawidłowe okresy istnienia w przypadku używania zasad i procedur obsługi komunikatów w scenariuszach niestandardowych. Metody rozszerzenia udostępniane przez PollyHttpClientBuilderExtensions program zostały zaprojektowane w celu przypisania długiego okresu istnienia do zasad i zapewnienia, że mogą być używane, gdy funkcja rotacji programu obsługi jest aktywna.

Spowoduje PolicyHttpMessageHandler to dołączenie kontekstu do HttpRequestMessage obiektu przed wykonaniem Policyelementu , jeśli jeszcze nie istnieje. Zostaną Context udostępnione zasadom do użycia wewnątrz Policy programu i w innych programach obsługi komunikatów.

Konstruktory

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

Tworzy nowy adres PolicyHttpMessageHandler.

PolicyHttpMessageHandler(IAsyncPolicy<HttpResponseMessage>)

Tworzy nowy adres PolicyHttpMessageHandler.

Właściwości

InnerHandler

Pobiera lub ustawia wewnętrzną procedurę obsługi, która przetwarza komunikaty odpowiedzi HTTP.

(Odziedziczone po DelegatingHandler)

Metody

Dispose()

Zwalnia niezarządzane zasoby i usuwa zarządzane zasoby używane przez program HttpMessageHandler.

(Odziedziczone po HttpMessageHandler)
Dispose(Boolean)

Zwalnia niezarządzane zasoby używane przez DelegatingHandlerprogram i opcjonalnie usuwa zasoby zarządzane.

(Odziedziczone po DelegatingHandler)
Equals(Object)

Określa, czy dany obiekt jest taki sam, jak bieżący obiekt.

(Odziedziczone po Object)
GetHashCode()

Służy jako domyślna funkcja skrótu.

(Odziedziczone po Object)
GetType()

Type Pobiera wartość bieżącego wystąpienia.

(Odziedziczone po Object)
MemberwiseClone()

Tworzy płytkią kopię bieżącego Objectelementu .

(Odziedziczone po Object)
Send(HttpRequestMessage, CancellationToken)

Wysyła żądanie HTTP do programu obsługi wewnętrznej w celu wysłania do serwera.

(Odziedziczone po DelegatingHandler)
SendAsync(HttpRequestMessage, CancellationToken)

Wysyła żądanie HTTP do wewnętrznego programu obsługi w celu wysłania do serwera jako operacji asynchronicznej.

SendCoreAsync(HttpRequestMessage, Context, CancellationToken)

Wywoływana wewnątrz wykonywania Policy obiektu , aby wykonać przetwarzanie żądań.

ToString()

Zwraca ciąg reprezentujący bieżący obiekt.

(Odziedziczone po Object)

Dotyczy