PolicyHttpMessageHandler Sınıf
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
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
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ış rehberliktir IHttpClientFactory. Polly hakkında yetkili bilgiler için Polly projesine ve belgelerine (https://github.com/app-vnext/Polly) 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 isteğin önce başarısız olmasını gerektirmeyen Zaman Aşımı veya Önbellek gibi reaktif olmayan ilkeler dahildir.
PolicyHttpMessageHandler PollyHttpClientBuilderExtensions ve kolaylık yöntemleri yalnızca genel IAsyncPolicy`1kabul eder. Genel ilke örnekleri gibi TimeoutAsync``1(System.Int32)genel Policy yöntemler kullanılarak oluşturulabilir.
Mevcut genel IAsyncPolicyolmayan bir öğesini uyarlamak için, genel IAsyncPolicy policyIAsyncPolicy`1olmayan bir öğesini öğesine dönüştüren 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, Devre Kesici 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 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 belirli ilkeler durumu korur ve Bölme Kafasını 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üresine dikkat edin. tarafından PollyHttpClientBuilderExtensions sağlanan uzantı yöntemleri, ilkelere uzun bir ömür atamak ve işleyici döndürme özelliği etkin olduğunda kullanılabilmesini sağlamak 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ğlanır.
Oluşturucular
| Name | Description |
|---|---|
| PolicyHttpMessageHandler(Func<HttpRequestMessage,IAsyncPolicy<HttpResponseMessage>>) |
Yeni PolicyHttpMessageHandlerbir oluşturur. |
| PolicyHttpMessageHandler(IAsyncPolicy<HttpResponseMessage>) |
Yeni PolicyHttpMessageHandlerbir oluşturur. |
Yöntemler
| Name | Description |
|---|---|
| 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. |