PolicyHttpMessageHandler Класс

Определение

Реализация DelegatingHandler, которая выполняет обработку запросов, окруженную 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
Наследование
PolicyHttpMessageHandler

Комментарии

Эта реализация обработчика сообщений поддерживает использование политик, предоставляемых библиотекой Polly, для обработки временных сбоев и обеспечения устойчивости.

Приведенная здесь документация содержит рекомендации по использованию Polly вместе с IHttpClientFactory. Достоверную информацию о Polly см. в проекте Polly и его документации .

Методы расширения в PollyHttpClientBuilderExtensions предназначены как удобный и правильный PolicyHttpMessageHandlerспособ создания .

Метод AddPolicyHandler(IHttpClientBuilder, IAsyncPolicy<HttpResponseMessage>) поддерживает создание PolicyHttpMessageHandler для политики любого типа. Сюда входят неактивные политики, такие как timeout или Cache, которые не требуют, чтобы базовый запрос сначала завершился сбоем.

PolicyHttpMessageHandlerи PollyHttpClientBuilderExtensions удобные методы принимают только универсальный метод IAsyncPolicy`1 . Экземпляры универсальной политики можно создать с помощью универсальных методов, Policy таких как TimeoutAsync``1(System.Int32).

Для адаптации существующего неуниверсационного IAsyncPolicyкода используйте следующий код:

policy.AsAsyncPolicy<HttpResponseMessage>()

Метод AddTransientHttpErrorPolicy(IHttpClientBuilder, Func<PolicyBuilder<HttpResponseMessage>,IAsyncPolicy<HttpResponseMessage>>) — это удобный метод, который поддерживает применение политики для запросов, которые завершаются сбоем из-за сбоя подключения или ошибки сервера (код состояния HTTP 5XX). Этот метод поддерживает только реактивные политики, такие как повтор, Circuit-Breaker или резервный вариант. Этот метод предоставляется только для удобства; Рекомендуется создавать собственные политики по мере необходимости, если это не соответствует вашим требованиям.

Ведите осторожность при использовании политик, таких как повтор или время ожидания, так как HttpClient предоставляет собственное время ожидания через Timeout. При объединении Retry и Timeout Timeout будет действовать как время ожидания для всех попыток. Политику времени ожидания опроса можно настроить после политики повтора в последовательности конфигурации, чтобы указать время ожидания при каждой попытке.

Все политики, предоставляемые Polly, разработаны таким образом, чтобы быть эффективными при длительном использовании. Некоторые политики, такие как Bulkhead и Circuit-Breaker поддерживать состояние и должны быть ограничены в пределах вызовов, которые вы хотите совместно использовать состояние Bulkhead или Circuit-Breaker. Обеспечьте правильное время существования при совместном использовании политик и обработчиков сообщений в пользовательских сценариях. Методы расширения, предоставляемые , PollyHttpClientBuilderExtensions предназначены для назначения длительного времени существования политикам и обеспечения их использования при активной функции смены обработчика.

Будет PolicyHttpMessageHandler присоединять контекст к HttpRequestMessage до выполнения Policy, если он еще не существует. Будет Context предоставлен политике для использования в Policy и в других обработчиках сообщений.

Конструкторы

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

Создает новый экземпляр PolicyHttpMessageHandler.

PolicyHttpMessageHandler(IAsyncPolicy<HttpResponseMessage>)

Создает новый экземпляр PolicyHttpMessageHandler.

Свойства

InnerHandler

Возвращает или задает внутренний обработчик, который обрабатывает сообщения HTTP-ответа.

(Унаследовано от DelegatingHandler)

Методы

Dispose()

Освобождает неуправляемые ресурсы и удаляет управляемые ресурсы, используемые объектом HttpMessageHandler.

(Унаследовано от HttpMessageHandler)
Dispose(Boolean)

Освобождает неуправляемые ресурсы, используемые объектом DelegatingHandler, и при необходимости освобождает также управляемые ресурсы.

(Унаследовано от DelegatingHandler)
Equals(Object)

Определяет, равен ли указанный объект текущему объекту.

(Унаследовано от Object)
GetHashCode()

Служит хэш-функцией по умолчанию.

(Унаследовано от Object)
GetType()

Возвращает объект Type для текущего экземпляра.

(Унаследовано от Object)
MemberwiseClone()

Создает неполную копию текущего объекта Object.

(Унаследовано от Object)
Send(HttpRequestMessage, CancellationToken)

Отправляет HTTP-запрос внутреннему обработчику для отправки на сервер.

(Унаследовано от DelegatingHandler)
SendAsync(HttpRequestMessage, CancellationToken)

Отправляет HTTP-запрос внутреннему обработчику для отправки на сервер в качестве асинхронной операции.

SendCoreAsync(HttpRequestMessage, Context, CancellationToken)

Вызывается в ходе выполнения Policy для обработки запроса.

ToString()

Возвращает строку, представляющую текущий объект.

(Унаследовано от Object)

Применяется к