Поделиться через


IHttpFilter Интерфейс

Определение

Интерфейс, используемый для реализации пользовательских фильтров для экземпляра 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
Производный
Атрибуты
Реализации

Требования к Windows

Семейство устройств
Windows 10 (появилось в 10.0.10240.0)
API contract
Windows.Foundation.UniversalApiContract (появилось в v1.0)

Комментарии

Интерфейс IHttpFilter используется для разработки пользовательских фильтров для экземпляра HttpClient . Пользовательские фильтры реализуются в методе SendRequestAsync в интерфейсе IHttpFilter.

Классы в пространстве имен Windows.Web.Http поддерживают использование фильтров на основе классов в пространстве имен Windows.Web.Http.Filters . Класс HttpClient в пространстве имен Windows.Web.Http предоставляет базовый класс для отправки HTTP-запросов и получения ответов HTTP. Фильтры предоставляют механизм обработчика для решения распространенных проблем со службой HTTP. Простые фильтры можно объединять в цепочку в последовательности для решения более сложных проблем со службой HTTP.

Фильтр HTTP — это черный ящик, который принимает сообщение HTTP-запроса и создает ответное сообщение HTTP. То, как фильтр получает HTTP-ответ, определяется разработчиком фильтра. Приложение может немедленно создать ответ, отправить запрос по протоколу TCP на сервер, а также отправить несколько запросов на сервер (или на несколько серверов) перед созданием ответного сообщения. Так как не указано, как фильтр получает ответное сообщение, фильтр может передать сообщение запроса другому фильтру (называемому внутренним фильтром), делегируя тем самым создание ответного сообщения внутреннему фильтру.

Фильтры обычно добавляют или изменяют заголовки, обрабатывают авторизацию (возможно, с помощью WebAuthenticationBroker), разрешают или запрещают запрос на основе условий сети. Фильтры обычно вносят изменения, а затем передают запрос внутреннему фильтру, который обычно устанавливается при создании фильтра.

Такой подход позволяет фильтрам отвечать только за определенный аспект выполнения HTTP-запроса и делегировать другие аспекты другим фильтрам. Фильтр может реализовывать кэширование, проверку подлинности, перенаправления, файлы cookie, фактическое взаимодействие с сервером или их сочетание. Самый нижний (базовый) фильтр, как правило, является фильтром, который выполняет фактическое взаимодействие с сетью.

Разработчики могут создавать собственные фильтры для проблем, связанных с сайтом. Например, некоторые сайты используют ответ 503 (служба недоступна), чтобы указать, что запрос следует выполнить повторно. Можно реализовать пользовательский фильтр для обнаружения этого поведения и соответствующего реагирования. Другой пример может иметь дело с методами в пространствах имен Windows.Web.Http и Windows.Web.Http.Filters , которые отправляют данные по сети, вызывают исключения из-за сбоев в сети (например, сетевое подключение теряется в режиме "в самолете"). Настраиваемый фильтр может изменить перехват сетевых исключений и преобразовать их в код состояния HTTP.

Методы

Dispose()

Выполняет определяемые приложением задачи, связанные с удалением, высвобождением или сбросом неуправляемых ресурсов.

SendRequestAsync(HttpRequestMessage)

Отправка HTTP-запроса на экземпляр IHttpFilter в качестве асинхронной операции.

Применяется к

См. также раздел