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
- Наследование
Комментарии
Эта реализация обработчика сообщений поддерживает использование политик, предоставляемых библиотекой 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) |
Применяется к
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделе:Отправить и просмотреть отзыв по