Comparteix a través de


PolicyHttpMessageHandler Clase

Definición

Una implementación de DelegatingHandler que ejecuta el procesamiento de solicitudes rodeado por una instancia de 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
Herencia
PolicyHttpMessageHandler

Comentarios

Esta implementación del controlador de mensajes admite el uso de directivas proporcionadas por la biblioteca polly para el control transitorio de errores y la resistencia.

La documentación que se proporciona aquí es una guía centrada para usar Polly junto con .IHttpClientFactory Consulte el proyecto polly y su documentación para obtener información autoritativa sobre Polly.

Los métodos de extensión en PollyHttpClientBuilderExtensions están diseñados como una manera cómoda y correcta de crear un PolicyHttpMessageHandler.

El AddPolicyHandler(IHttpClientBuilder, IAsyncPolicy<HttpResponseMessage>) método admite la creación de para PolicyHttpMessageHandler cualquier tipo de directiva. Esto incluye directivas no reactivas, como Tiempo de espera o caché, que no requieren que se produzca un error en la solicitud subyacente primero.

PolicyHttpMessageHandlery los PollyHttpClientBuilderExtensions métodos útiles solo aceptan el genérico IAsyncPolicy`1 . Las instancias de directiva genéricas se pueden crear mediante los métodos genéricos en Policy , como TimeoutAsync``1(System.Int32).

Para adaptar un elemento no genérico IAsyncPolicyexistente, use código como el siguiente:

policy.AsAsyncPolicy<HttpResponseMessage>()

El AddTransientHttpErrorPolicy(IHttpClientBuilder, Func<PolicyBuilder<HttpResponseMessage>,IAsyncPolicy<HttpResponseMessage>>) método es un método de conveniencia fundamentado que admite la aplicación de una directiva para las solicitudes que producen un error debido a un error de conexión o error de servidor (código de estado HTTP 5XX). Este tipo de método solo admite directivas reactivas, como Retry, Circuit-Breaker o Fallback. Este método solo se proporciona para mayor comodidad; se recomienda crear sus propias directivas según sea necesario si esto no cumple sus requisitos.

Tenga cuidado al usar directivas como Retry o Timeout juntos, ya que HttpClient proporciona su propio tiempo de espera a través de Timeout. Al combinar Retry y Timeout, Timeout actuará como un tiempo de espera en todos los intentos; se puede configurar una directiva de tiempo de espera de Polly después de una directiva de reintento en la secuencia de configuración, para proporcionar un tiempo de espera por intento.

Todas las directivas proporcionadas por Polly están diseñadas para ser eficaces cuando se usan de forma prolongada. Ciertas directivas, como Bulkhead y Circuit-Breaker mantener el estado, y deben limitarse entre las llamadas que desea compartir el estado Bulkhead o Circuit-Breaker. Tenga cuidado de garantizar las duraciones correctas al usar directivas y controladores de mensajes juntos en escenarios personalizados. Los métodos de extensión proporcionados por PollyHttpClientBuilderExtensions están diseñados para asignar una duración larga a las directivas y asegurarse de que se pueden usar cuando la característica de rotación del controlador está activa.

PolicyHttpMessageHandler asociará un contexto al HttpRequestMessage objeto antes de ejecutar un Policy, si aún no existe uno. Context Se proporcionará a la directiva para su uso dentro de Policy y en otros controladores de mensajes.

Constructores

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

Crea un nuevo PolicyHttpMessageHandler.

PolicyHttpMessageHandler(IAsyncPolicy<HttpResponseMessage>)

Crea un nuevo PolicyHttpMessageHandler.

Propiedades

InnerHandler

Obtiene o establece el controlador interno que procesa los mensajes de respuesta HTTP.

(Heredado de DelegatingHandler)

Métodos

Dispose()

Libera los recursos no administrados y desecha los recursos administrados que usa HttpMessageHandler.

(Heredado de HttpMessageHandler)
Dispose(Boolean)

Libera los recursos no administrados que usa DelegatingHandler y, de forma opcional, desecha los recursos administrados.

(Heredado de DelegatingHandler)
Equals(Object)

Determina si el objeto especificado es igual que el objeto actual.

(Heredado de Object)
GetHashCode()

Sirve como la función hash predeterminada.

(Heredado de Object)
GetType()

Obtiene el Type de la instancia actual.

(Heredado de Object)
MemberwiseClone()

Crea una copia superficial del Object actual.

(Heredado de Object)
Send(HttpRequestMessage, CancellationToken)

Envía una solicitud HTTP al controlador interno para enviar al servidor.

(Heredado de DelegatingHandler)
SendAsync(HttpRequestMessage, CancellationToken)

Envía una solicitud HTTP al controlador interno para enviar al servidor como una operación asincrónica.

SendCoreAsync(HttpRequestMessage, Context, CancellationToken)

Se llama dentro de la ejecución de Policy para realizar el procesamiento de la solicitud.

ToString()

Devuelve una cadena que representa el objeto actual.

(Heredado de Object)

Se aplica a