Compartilhar via


IHttpFilter Interface

Definição

Uma interface usada para implementar filtros personalizados para uma instância httpClient .

public interface class IHttpFilter : IClosable
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 65536)]
/// [Windows.Foundation.Metadata.Guid(2764795349, 2306, 17310, 191, 215, 225, 37, 82, 177, 101, 206)]
struct IHttpFilter : IClosable
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 65536)]
[Windows.Foundation.Metadata.Guid(2764795349, 2306, 17310, 191, 215, 225, 37, 82, 177, 101, 206)]
public interface IHttpFilter : System.IDisposable
Public Interface IHttpFilter
Implements IDisposable
Derivado
Atributos
Implementações

Requisitos do Windows

Família de dispositivos
Windows 10 (introduzida na 10.0.10240.0)
API contract
Windows.Foundation.UniversalApiContract (introduzida na v1.0)

Comentários

A interface IHttpFilter é usada para desenvolver filtros personalizados para uma instância httpClient . Os filtros personalizados são implementados no método SendRequestAsync em sua interface IHttpFilter.

As classes no namespace Windows.Web.Http dão suporte ao uso de filtros com base nas classes no namespace Windows.Web.Http.Filters . A classe HttpClient no namespace Windows.Web.Http fornece uma classe base para enviar solicitações HTTP e receber respostas HTTP. Os filtros fornecem um mecanismo de manipulador para ajudar com problemas comuns de serviço HTTP. Filtros simples podem ser encadeados em uma sequência para lidar com problemas de serviço HTTP mais complexos.

Um filtro HTTP é uma caixa preta que recebe uma mensagem de solicitação HTTP e produz uma mensagem de resposta HTTP. Como o filtro obtém uma resposta HTTP é determinado pelo desenvolvedor do filtro. Um aplicativo pode criar a resposta imediatamente, pode enviar a solicitação por TCP para um servidor, pode até mesmo enviar várias solicitações para um servidor (ou para mais de um servidor) antes de gerar uma mensagem de resposta. Como não é especificado como um filtro chega a uma mensagem de resposta, um filtro pode passar a mensagem de solicitação para outro filtro (chamado de filtro interno), delegando assim a criação de uma mensagem de resposta ao filtro interno.

Os filtros geralmente adicionam ou alteram cabeçalhos, manipulam a autorização (possivelmente usando o WebAuthenticationBroker) ou permitem ou não uma solicitação com base nas condições de rede. Os filtros geralmente fazem alterações e passam a solicitação para um filtro interno, que normalmente é definido quando um filtro é construído.

Essa abordagem permite que os filtros sejam responsáveis apenas por um aspecto específico de uma execução de solicitação HTTP e deleguem outros aspectos a outros filtros. Um filtro pode implementar cache, autenticação, redirecionamentos, cookies, comunicação real com o servidor ou uma combinação deles. O filtro mais baixo (base) geralmente será aquele que faz a comunicação real com a rede.

Os desenvolvedores podem escrever seus próprios filtros para problemas específicos do site. Um exemplo é que alguns sites usam a resposta 503 (Serviço Indisponível) para indicar que a solicitação deve ser repetida. Um filtro personalizado pode ser implementado para detectar esse comportamento e responder adequadamente. Outro exemplo pode lidar com métodos nos namespaces Windows.Web.Http e Windows.Web.Http.Filters que enviam dados pela rede geram exceções devido a falhas de rede (a conectividade de rede é perdida no modo avião, por exemplo). Um filtro personalizado pode alterar a exceção catch network e convertê-la em um código http status.

Métodos

Dispose()

Realiza tarefas definidas pelo aplicativo associadas à liberação ou à redefinição de recursos não gerenciados.

SendRequestAsync(HttpRequestMessage)

Envie uma solicitação HTTP na instância IHttpFilter como uma operação assíncrona.

Aplica-se a

Confira também