Condividi tramite


IHttpFilter Interfaccia

Definizione

Interfaccia usata per implementare filtri personalizzati per un'istanza 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
Derivato
Attributi
Implementazioni

Requisiti Windows

Famiglia di dispositivi
Windows 10 (è stato introdotto in 10.0.10240.0)
API contract
Windows.Foundation.UniversalApiContract (è stato introdotto in v1.0)

Commenti

L'interfaccia IHttpFilter viene usata per sviluppare filtri personalizzati per un'istanza HttpClient . I filtri personalizzati vengono implementati nel metodo SendRequestAsync nell'interfaccia IHttpFilter.

Le classi nello spazio dei nomi Windows.Web.Http supportano l'uso di filtri basati sulle classi nello spazio dei nomi Windows.Web.Http.Filters . La classe HttpClient nello spazio dei nomi Windows.Web.Http fornisce una classe base per l'invio di richieste HTTP e la ricezione di risposte HTTP. I filtri forniscono un meccanismo del gestore per risolvere i problemi comuni del servizio HTTP. I filtri semplici possono essere concatenati in una sequenza per gestire problemi di servizio HTTP più complessi.

Un filtro HTTP è una casella nera che accetta un messaggio di richiesta HTTP e genera un messaggio di risposta HTTP. Il modo in cui il filtro ottiene una risposta HTTP è determinato dallo sviluppatore di filtri. Un'app può creare immediatamente la risposta, può inviare la richiesta tramite TCP a un server, può anche inviare più richieste a un server (o a più server) prima di generare un messaggio di risposta. Poiché non viene specificato il modo in cui un filtro ottiene un messaggio di risposta, un filtro può passare il messaggio di richiesta a un altro filtro (denominato filtro interno), delegando così la creazione di un messaggio di risposta al filtro interno.

I filtri in genere aggiungono o modificano intestazioni, gestiscono l'autorizzazione (possibilmente usando WebAuthenticationBroker) o consentono o non consentono una richiesta in base alle condizioni di rete. I filtri in genere apportano modifiche e quindi passano la richiesta a un filtro interno, che in genere viene impostato quando viene costruito un filtro.

Questo approccio consente ai filtri di essere responsabili solo di un aspetto specifico dell'esecuzione di una richiesta HTTP e delegare altri aspetti ad altri filtri. Un filtro può implementare la memorizzazione nella cache, l'autenticazione, i reindirizzamenti, i cookie, la comunicazione effettiva con il server o una combinazione di queste. Il filtro più basso (base) è in genere quello che esegue la comunicazione effettiva con la rete.

Gli sviluppatori possono scrivere i propri filtri per problemi specifici del sito. Un esempio è che alcuni siti usano la risposta 503 (Servizio non disponibile) per indicare che la richiesta deve essere ritentata. È possibile implementare un filtro personalizzato per rilevare questo comportamento e rispondere di conseguenza. Un altro esempio potrebbe gestire i metodi negli spazi dei nomi Windows.Web.Http e Windows.Web.Http.Filters che inviano dati sulla rete generano eccezioni a causa di errori di rete (la connettività di rete viene persa in modalità aereo, ad esempio). Un filtro personalizzato potrebbe modificare l'eccezione di rete catch e convertirli in un codice di stato HTTP.

Metodi

Dispose()

Esegue attività definite dall'applicazione, come rilasciare o reimpostare risorse non gestite.

SendRequestAsync(HttpRequestMessage)

Inviare una richiesta HTTP nell'istanza IHttpFilter come operazione asincrona.

Si applica a

Vedi anche