PolicyHttpMessageHandler Sınıf

Tanım

bir DelegatingHandler ile çevrili istek işlemeyi yürüten bir Policyuygulama.

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
Devralma
PolicyHttpMessageHandler

Açıklamalar

Bu ileti işleyicisi uygulaması, Polly kitaplığı tarafından geçici hata işleme ve dayanıklılık için sağlanan ilkelerin kullanımını destekler.

Burada sağlanan belgeler Polly'yi ile birlikte kullanmaya yönelik odaklanmış yönergelerdir IHttpClientFactory. Polly hakkında yetkili bilgiler için Polly projesine ve belgelerine bakın.

üzerindeki PollyHttpClientBuilderExtensions uzantı yöntemleri, oluşturmanın kullanışlı ve doğru bir PolicyHttpMessageHandleryolu olarak tasarlanmıştır.

yöntemi, AddPolicyHandler(IHttpClientBuilder, IAsyncPolicy<HttpResponseMessage>) her tür ilke için bir PolicyHttpMessageHandler oluşturulmasını destekler. Buna, temel alınan isteğin önce başarısız olmasını gerektirmeyen Zaman Aşımı veya Önbellek gibi reaktif olmayan ilkeler dahildir.

PolicyHttpMessageHandlerPollyHttpClientBuilderExtensions ve kolaylık yöntemleri yalnızca genel IAsyncPolicy`1kabul eder. Genel ilke örnekleri gibi TimeoutAsync``1(System.Int32)üzerinde Policy genel yöntemler kullanılarak oluşturulabilir.

Mevcut genel IAsyncPolicyolmayan bir öğesini uyarlamak için aşağıdaki gibi bir kod kullanın:

policy.AsAsyncPolicy<HttpResponseMessage>()

AddTransientHttpErrorPolicy(IHttpClientBuilder, Func<PolicyBuilder<HttpResponseMessage>,IAsyncPolicy<HttpResponseMessage>>) yöntemi, bağlantı hatası veya sunucu hatası (5XX HTTP durum kodu) nedeniyle başarısız olan istekler için bir ilkenin uygulanmasını destekleyen, düşünülen bir kolaylık yöntemidir. Bu tür bir yöntem yalnızca Yeniden Deneme, Circuit-Breaker veya Geri Dönüş gibi reaktif ilkeleri destekler. Bu yöntem yalnızca kolaylık sağlamak için sağlanır; Gereksinimlerinizi karşılamıyorsa, gerektiğinde kendi ilkelerinizi oluşturmanızı öneririz.

HttpClient aracılığıyla Timeoutkendi zaman aşımını sağladığından, Yeniden Deneme veya Zaman Aşımı gibi ilkeleri birlikte kullanırken dikkatli olun. Yeniden Deneme ve Zaman Aşımı birleştirildiğinde, Timeout tüm denemelerde zaman aşımı görevi görür; deneme başına zaman aşımı sağlamak için yapılandırma sırasında bir Yeniden Deneme ilkesinden sonra bir Polly Zaman Aşımı ilkesi yapılandırılabilir.

Polly tarafından sağlanan tüm ilkeler, uzun ömürlü bir şekilde kullanıldığında verimli olacak şekilde tasarlanmıştır. Bulkhead ve Circuit-Breaker gibi bazı ilkeler durumu korur ve Bulkhead veya Circuit-Breaker durumunu paylaşmak istediğiniz çağrıların kapsamına alınmalıdır. Özel senaryolarda ilkeleri ve ileti işleyicilerini birlikte kullanırken doğru yaşam sürelerini sağlamaya dikkat edin. tarafından PollyHttpClientBuilderExtensions sağlanan uzantı yöntemleri, ilkelere uzun bir yaşam süresi atamak ve işleyici döndürme özelliği etkin olduğunda kullanılabildiklerinden emin olmak için tasarlanmıştır.

, PolicyHttpMessageHandler henüz yoksa yürütmeden önce öğesine bir Policybağlam HttpRequestMessage ekler. Context, ve içinde Policy ve diğer ileti işleyicilerinde kullanılmak üzere ilkeye sağlanacaktır.

Oluşturucular

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

Yeni bir PolicyHttpMessageHandler oluşturur.

PolicyHttpMessageHandler(IAsyncPolicy<HttpResponseMessage>)

Yeni bir PolicyHttpMessageHandler oluşturur.

Özellikler

InnerHandler

HTTP yanıt iletilerini işleyen iç işleyiciyi alır veya ayarlar.

(Devralındığı yer: DelegatingHandler)

Yöntemler

Dispose()

Yönetilmeyen kaynakları serbest bırakır ve tarafından HttpMessageHandlerkullanılan yönetilen kaynakları atılır.

(Devralındığı yer: HttpMessageHandler)
Dispose(Boolean)

tarafından DelegatingHandlerkullanılan yönetilmeyen kaynakları serbest bırakır ve isteğe bağlı olarak yönetilen kaynakları atılır.

(Devralındığı yer: DelegatingHandler)
Equals(Object)

Belirtilen nesnenin geçerli nesneye eşit olup olmadığını belirler.

(Devralındığı yer: Object)
GetHashCode()

Varsayılan karma işlevi işlevi görür.

(Devralındığı yer: Object)
GetType()

Type Geçerli örneğini alır.

(Devralındığı yer: Object)
MemberwiseClone()

Geçerli Objectöğesinin sığ bir kopyasını oluşturur.

(Devralındığı yer: Object)
Send(HttpRequestMessage, CancellationToken)

sunucuya göndermek için iç işleyiciye bir HTTP isteği gönderir.

(Devralındığı yer: DelegatingHandler)
SendAsync(HttpRequestMessage, CancellationToken)

Zaman uyumsuz bir işlem olarak sunucuya göndermek için iç işleyiciye bir HTTP isteği gönderir.

SendCoreAsync(HttpRequestMessage, Context, CancellationToken)

İstek işleme gerçekleştirmek için yürütme içinde Policy çağrılır.

ToString()

Geçerli nesneyi temsil eden dizeyi döndürür.

(Devralındığı yer: Object)

Şunlara uygulanır