IHttpFilter interface

IHttpFilter interface

An interface used to implement custom filters for an HttpClient instance.

Syntax


public interface IHttpFilter : IDisposable

Members

The IHttpFilter interface has these types of members:

Methods

The IHttpFilter interface has these methods. It also inherits methods from the Object class.

MethodDescription
SendRequestAsync Send an HTTP request on the IHttpFilter instance as an asynchronous operation.

 

Remarks

The IHttpFilter interface is used to develop custom filters for an HttpClient instance. Custom filters are implemented in the SendRequestAsync method on their IHttpFilter interface.

Classes in the Windows.Web.Http namespace support the use of filters based on the classes in the Windows.Web.Http.Filters namespace. The HttpClient class in the Windows.Web.Http namespace provides a base class for sending HTTP requests and receiving HTTP responses. Filters provide a handler mechanism to help with common HTTP service issues. Simple filters can be chained together in a sequence to handle more complex HTTP service issues.

An HTTP filter is a black box which takes an HTTP request message and produces an HTTP response message. How the filter gets an HTTP response is determined by the filter developer. An app can create the response immediately, it can send the request over TCP to a server, it can even send multiple requests to a server (or to more than one server) before it generates a response message. Since it is unspecified how a filter gets to a response message, a filter can pass the request message to another filter (called the inner filter), thus delegating the creation of a response message to the inner filter.

Filters commonly add or change headers, handle authorization (possibly using the WebAuthenticationBroker), or allow or disallow a request based on network conditions. Filters usually make changes and then pass the request to an inner filter, which is typically set when a filter is constructed.

This approach allows filters to be only responsible for a specific aspect of an HTTP request execution and delegate other aspects to other filters. A filter can implement caching, authentication, redirects, cookies, actual communication with the server, or a combination of these. The bottom-most (base) filter will usually be the one that does actual communication with the network.

Developers can write their own filters for site-specific issues. An example is that some site uses the 503 (Service Unavailable) response to indicate that the request should be retried. A custom filter could be implemented to detect this behavior and respond accordingly. Another example could deal with methods in the Windows.Web.Http and Windows.Web.Http.Filters namespaces that send data over the network throw exceptions due to network failures (network connectivity is lost in airplane mode, for example). A custom filter could change catch network exception and convert them to an HTTP status code.

Requirements (Windows 10 device family)

Device family

Universal, introduced version 10.0.10240.0

API contract

Windows.Foundation.UniversalApiContract, introduced version 1.0

Namespace

Windows.Web.Http.Filters
Windows::Web::Http::Filters [C++]

Metadata

Windows.Foundation.UniversalApiContract.winmd

Requirements (Windows 8.x and Windows Phone 8.x)

Minimum supported client

Windows 8.1

Minimum supported server

Windows Server 2012 R2

Minimum supported phone

Windows Phone 8.1 [Windows Phone Silverlight 8.1 and Windows Runtime apps]

Namespace

Windows.Web.Http.Filters
Windows::Web::Http::Filters [C++]

Metadata

Windows.winmd

Attributes

[Version(0x06030000)]

See also

IClosable

 

 

Show:
© 2016 Microsoft