IHttpFilter Interfaz
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Interfaz que se usa para implementar filtros personalizados para una instancia de 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
- Implementaciones
Requisitos de Windows
Familia de dispositivos |
Windows 10 (se introdujo en la versión 10.0.10240.0)
|
API contract |
Windows.Foundation.UniversalApiContract (se introdujo en la versión v1.0)
|
Comentarios
La interfaz IHttpFilter se usa para desarrollar filtros personalizados para una instancia de HttpClient . Los filtros personalizados se implementan en el método SendRequestAsync en su interfaz IHttpFilter.
Las clases del espacio de nombres Windows.Web.Http admiten el uso de filtros basados en las clases del espacio de nombres Windows.Web.Http.Filters . La clase HttpClient del espacio de nombres Windows.Web.Http proporciona una clase base para enviar solicitudes HTTP y recibir respuestas HTTP. Los filtros proporcionan un mecanismo de controlador para ayudar con problemas comunes del servicio HTTP. Los filtros simples se pueden encadenar en una secuencia para controlar problemas de servicio HTTP más complejos.
Un filtro HTTP es un cuadro negro que toma un mensaje de solicitud HTTP y genera un mensaje de respuesta HTTP. La forma en que el filtro obtiene una respuesta HTTP viene determinada por el desarrollador de filtros. Una aplicación puede crear la respuesta inmediatamente, puede enviar la solicitud a través de TCP a un servidor, incluso puede enviar varias solicitudes a un servidor (o a más de un servidor) antes de generar un mensaje de respuesta. Puesto que no se especifica cómo un filtro llega a un mensaje de respuesta, un filtro puede pasar el mensaje de solicitud a otro filtro (denominado filtro interno), de modo que se delega la creación de un mensaje de respuesta al filtro interno.
Los filtros suelen agregar o cambiar encabezados, controlar la autorización (posiblemente mediante WebAuthenticationBroker) o permitir o denegar una solicitud en función de las condiciones de red. Normalmente, los filtros realizan cambios y, a continuación, pasan la solicitud a un filtro interno, que normalmente se establece cuando se construye un filtro.
Este enfoque permite que los filtros solo sean responsables de un aspecto específico de la ejecución de una solicitud HTTP y delegue otros aspectos a otros filtros. Un filtro puede implementar el almacenamiento en caché, la autenticación, las redirecciones, las cookies, la comunicación real con el servidor o una combinación de estos. El filtro más abajo (base) suele ser el que realiza la comunicación real con la red.
Los desarrolladores pueden escribir sus propios filtros para problemas específicos del sitio. Un ejemplo es que algún sitio usa la respuesta 503 (servicio no disponible) para indicar que se debe reintentar la solicitud. Se podría implementar un filtro personalizado para detectar este comportamiento y responder en consecuencia. Otro ejemplo podría tratar los métodos de los espacios de nombres Windows.Web.Http y Windows.Web.Http.Filters que envían datos a través de la red inician excepciones debido a errores de red (la conectividad de red se pierde en modo avión, por ejemplo). Un filtro personalizado podría cambiar la excepción de red catch y convertirlos en un código de estado HTTP.
Métodos
Dispose() |
Realiza tareas definidas por la aplicación asociadas a la liberación o al restablecimiento de recursos no administrados. |
SendRequestAsync(HttpRequestMessage) |
Envíe una solicitud HTTP en la instancia de IHttpFilter como una operación asincrónica. |