Partager via


IHttpFilter Interface

Définition

Interface utilisée pour implémenter des filtres personnalisés pour un instance 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
Dérivé
Attributs
Implémente

Configuration requise pour Windows

Famille d’appareils
Windows 10 (introduit dans 10.0.10240.0)
API contract
Windows.Foundation.UniversalApiContract (introduit dans v1.0)

Remarques

L’interface IHttpFilter est utilisée pour développer des filtres personnalisés pour un instance HttpClient. Les filtres personnalisés sont implémentés dans la méthode SendRequestAsync sur leur interface IHttpFilter.

Les classes de l’espace de noms Windows.Web.Http prennent en charge l’utilisation de filtres basés sur les classes de l’espace de noms Windows.Web.Http.Filters . La classe HttpClient de l’espace de noms Windows.Web.Http fournit une classe de base pour l’envoi de requêtes HTTP et la réception de réponses HTTP. Les filtres fournissent un mécanisme de gestionnaire pour aider à résoudre les problèmes courants liés au service HTTP. Les filtres simples peuvent être chaînés dans une séquence pour gérer les problèmes de service HTTP plus complexes.

Un filtre HTTP est une zone noire qui accepte un message de requête HTTP et produit un message de réponse HTTP. La façon dont le filtre obtient une réponse HTTP est déterminée par le développeur de filtres. Une application peut créer la réponse immédiatement, elle peut envoyer la requête via TCP à un serveur, elle peut même envoyer plusieurs requêtes à un serveur (ou à plusieurs serveurs) avant de générer un message de réponse. Comme il n’est pas spécifié comment un filtre accède à un message de réponse, un filtre peut passer le message de demande à un autre filtre (appelé filtre interne), déléguant ainsi la création d’un message de réponse au filtre interne.

Les filtres ajoutent ou modifient généralement des en-têtes, gèrent l’autorisation (éventuellement à l’aide de WebAuthenticationBroker), ou autorisent ou interdisent une requête en fonction des conditions réseau. Les filtres apportent généralement des modifications, puis transmettent la demande à un filtre interne, qui est généralement défini lors de la construction d’un filtre.

Cette approche permet aux filtres d’être uniquement responsables d’un aspect spécifique d’une exécution d’une requête HTTP et de déléguer d’autres aspects à d’autres filtres. Un filtre peut implémenter la mise en cache, l’authentification, les redirections, les cookies, la communication réelle avec le serveur ou une combinaison de ceux-ci. Le filtre le plus bas (de base) est généralement celui qui effectue la communication réelle avec le réseau.

Les développeurs peuvent écrire leurs propres filtres pour les problèmes spécifiques au site. Par exemple, certains sites utilisent la réponse 503 (Service indisponible) pour indiquer que la demande doit être retentée. Un filtre personnalisé peut être implémenté pour détecter ce comportement et répondre en conséquence. Un autre exemple pourrait traiter des méthodes dans les espaces de noms Windows.Web.Http et Windows.Web.Http.Filters qui envoient des données sur le réseau lève des exceptions en raison de défaillances réseau (la connectivité réseau est perdue en mode avion, par exemple). Un filtre personnalisé peut modifier l’exception réseau intercepter et la convertir en code http status.

Méthodes

Dispose()

Exécute les tâches définies par l'application associées à la libération ou à la redéfinition des ressources non managées.

SendRequestAsync(HttpRequestMessage)

Envoyez une requête HTTP sur le instance IHttpFilter en tant qu’opération asynchrone.

S’applique à

Voir aussi