PolicyHttpMessageHandler Classe

Definição

Uma implementação de DelegatingHandler que executa o processamento de solicitações circundado por um 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
Herança
PolicyHttpMessageHandler

Comentários

Essa implementação do manipulador de mensagens dá suporte ao uso de políticas fornecidas pela biblioteca Polly para manipulação de falhas transitórias e resiliência.

A documentação fornecida aqui é uma orientação focada para usar o Polly junto com o IHttpClientFactory. Consulte o projeto Polly e sua documentação para obter informações autoritativas sobre Polly.

Os métodos de extensão em PollyHttpClientBuilderExtensions são projetados como uma maneira conveniente e correta de criar um PolicyHttpMessageHandler.

O AddPolicyHandler(IHttpClientBuilder, IAsyncPolicy<HttpResponseMessage>) método dá suporte à criação de um PolicyHttpMessageHandler para qualquer tipo de política. Isso inclui políticas não reativas, como Tempo limite ou Cache, que não exigem que a solicitação subjacente falhe primeiro.

PolicyHttpMessageHandlere os PollyHttpClientBuilderExtensions métodos de conveniência aceitam apenas o genérico IAsyncPolicy`1 . Instâncias de política genéricas podem ser criadas usando os métodos genéricos em Policy como TimeoutAsync``1(System.Int32).

Para adaptar um não genérico IAsyncPolicyexistente, use código como o seguinte:

policy.AsAsyncPolicy<HttpResponseMessage>()

O AddTransientHttpErrorPolicy(IHttpClientBuilder, Func<PolicyBuilder<HttpResponseMessage>,IAsyncPolicy<HttpResponseMessage>>) método é um método de conveniência opinativo que dá suporte à aplicação de uma política para solicitações que falham devido a uma falha de conexão ou erro de servidor (5XX HTTP status código). Esse tipo de método dá suporte apenas a políticas reativas, como Repetição, Circuit-Breaker ou Fallback. Esse método só é fornecido para conveniência; Recomendamos criar suas próprias políticas conforme necessário se isso não atender aos seus requisitos.

Tome cuidado ao usar políticas como Repetição ou Tempo Limite juntos, pois o HttpClient fornece seu próprio tempo limite por meio de Timeout. Ao combinar Retry e Timeout, Timeout atuará como um tempo limite em todas as tentativas; uma política polly timeout pode ser configurada após uma política de repetição na sequência de configuração, para fornecer um tempo limite por tentativa.

Todas as políticas fornecidas pela Polly são projetadas para serem eficientes quando usadas de uma maneira de longa duração. Determinadas políticas, como Bulkhead e Circuit-Breaker, mantêm o estado e devem ser definidas entre chamadas que você deseja compartilhar o estado Bulkhead ou Circuit-Breaker. Tome cuidado para garantir os tempos de vida corretos ao usar políticas e manipuladores de mensagens juntos em cenários personalizados. Os métodos de extensão fornecidos por PollyHttpClientBuilderExtensions são projetados para atribuir um longo tempo de vida às políticas e garantir que elas possam ser usadas quando o recurso de rotação do manipulador estiver ativo.

O PolicyHttpMessageHandler anexará um contexto ao anterior à HttpRequestMessage execução de um Policy, se ainda não existir um. O Context será fornecido à política para uso dentro do Policy e em outros manipuladores de mensagens.

Construtores

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

Cria um novo PolicyHttpMessageHandler.

PolicyHttpMessageHandler(IAsyncPolicy<HttpResponseMessage>)

Cria um novo PolicyHttpMessageHandler.

Propriedades

InnerHandler

Obtém ou define o manipulador interno que processa as mensagens de resposta HTTP.

(Herdado de DelegatingHandler)

Métodos

Dispose()

Libera os recursos não gerenciados e descarta aqueles gerenciados usados pelo HttpMessageHandler.

(Herdado de HttpMessageHandler)
Dispose(Boolean)

Libera os recursos não gerenciados usados pelo DelegatingHandler e, opcionalmente, descarta os recursos gerenciados.

(Herdado de DelegatingHandler)
Equals(Object)

Determina se o objeto especificado é igual ao objeto atual.

(Herdado de Object)
GetHashCode()

Serve como a função de hash padrão.

(Herdado de Object)
GetType()

Obtém o Type da instância atual.

(Herdado de Object)
MemberwiseClone()

Cria uma cópia superficial do Object atual.

(Herdado de Object)
Send(HttpRequestMessage, CancellationToken)

Envia uma solicitação HTTP para o manipulador interno para envio ao servidor.

(Herdado de DelegatingHandler)
SendAsync(HttpRequestMessage, CancellationToken)

Envia uma solicitação HTTP para o manipulador interno para enviar ao servidor como uma operação assíncrona.

SendCoreAsync(HttpRequestMessage, Context, CancellationToken)

Chamado dentro da execução do Policy para executar o processamento da solicitação.

ToString()

Retorna uma cadeia de caracteres que representa o objeto atual.

(Herdado de Object)

Aplica-se a