WinHttpHandler Класс
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Обрабатывает сообщения на основе интерфейса WinHTTP Windows. Этот класс предназначен для использования в серверных средах.
public ref class WinHttpHandler : System::Net::Http::HttpMessageHandler
public class WinHttpHandler : System.Net.Http.HttpMessageHandler
type WinHttpHandler = class
inherit HttpMessageHandler
Public Class WinHttpHandler
Inherits HttpMessageHandler
- Наследование
Комментарии
WinHttpHandler аналогичен другим существующим классам, таким как HttpClientHandler. WinHttpHandler предоставляет обработчик под экземпляром HttpClient и используется для отправки HTTP-запросов на сервер и получения ответов сервера. Реализация WinHttpHandler поддерживает версии HTTP до HTTP/2.
WinHttpHandler предоставляет разработчикам более детальный контроль над http-связью приложения, чем HttpClientHandler класс. Это позволяет разработчикам реализовать более сложные сценарии HTTP или изменить системные значения по умолчанию (например, параметры прокси-сервера, время ожидания и проверка SSL-сертификата сервера).
WinHttpHandler не предназначено для замены HttpClientHandler. Вместо этого это более расширенная версия, которая предоставляется для сценариев, где HttpClientHandler недостаточно. WinHttpHandler реализуется в виде тонкой оболочки в интерфейсе WinHTTP Windows и поддерживается только в системах Windows.
При использовании цепочки нескольких обработчиков WinHttpHandler должно находиться в нижней части цепочки.
Начиная с .NET 5, WinHttpHandler больше не входит в сборкуSystem.Net.Http.dll в рамках среды выполнения .NET. Дополнительные сведения см. в статье WinHttpHandler, удаленная из среды выполнения .NET.
Конечные заголовки
Начиная с версии 6.0.0, WinHttpHandler поддерживает конечные заголовки, также известные как трейлеры (RFC 7230 - 4.1.2. Часть фрагментированного трейлера).
- В .NET Standard 2.1 и .NET 8 или более поздней версии трейлеры добавляются TrailingHeadersв .
- В .NET Framework трейлеры добавляются в известное свойство в HttpRequestMessage.Properties объекте запроса, соответствующем ответу (HttpResponseMessage.RequestMessage). Имя свойства —
__ResponseTrailersтип HttpHeadersзначения свойства.
Поддержка трейлеров реализована с помощью флага WINHTTP_QUERY_FLAG_TRAILERSсведений о запросах , который был представлен в Windows 11 версии 21H2 (10.0; Сборка 22000). В системах Windows, где WINHTTP_QUERY_FLAG_TRAILERS не поддерживается, трейлеры игнорируются.
Конструкторы
| Имя | Описание |
|---|---|
| WinHttpHandler() |
Инициализирует новый экземпляр класса WinHttpHandler. |
Свойства
| Имя | Описание |
|---|---|
| AutomaticDecompression |
Возвращает или задает тип метода декомпрессии, используемого обработчиком для автоматического распаковки ответа на содержимое HTTP. |
| AutomaticRedirection |
Возвращает или задает значение, указывающее, должен ли обработчик следовать ответам перенаправления HTTP. |
| CheckCertificateRevocationList |
Возвращает или задает значение, указывающее, следует ли проверять список отзыва сертификатов во время проверки SSL-сертификата. |
| ClientCertificateOption |
Возвращает или задает значение, указывающее, будет ли сертификат автоматически выбран из хранилища сертификатов или если вызывающий объект может передать определенный сертификат клиента. |
| ClientCertificates |
Возвращает коллекцию SSL-сертификатов проверки подлинности клиента, которые используются для проверки подлинности клиента обработчиком, если ClientCertificateOption для свойства задано |
| CookieContainer |
Возвращает или задает объект контейнера управляемого файла cookie. Это свойство используется только в том случае, если CookieUsePolicy для свойства задано значение UseSpecifiedCookieContainer. SendAsync(HttpRequestMessage, CancellationToken) В противном случае метод вызовет исключение. |
| CookieUsePolicy |
Возвращает или задает значение, указывающее, как следует управлять и использовать файлы cookie. Разработчики могут игнорировать файлы cookie, разрешать обработчику автоматически управлять ими или вручную обрабатывать их с помощью CookieContainer объекта. |
| DefaultProxyCredentials |
Если используется прокси-сервер по умолчанию (система), получает или задает учетные данные, используемые для отправки на прокси-сервер по умолчанию для проверки подлинности. |
| EnableMultipleHttp2Connections |
Возвращает или задает значение, указывающее, можно ли установить дополнительные подключения HTTP/2 к одному серверу, если максимальное число одновременных потоков достигается во всех существующих подключениях. |
| MaxAutomaticRedirections |
Возвращает или задает максимально допустимое количество разрешенных перенаправлений HTTP. |
| MaxConnectionsPerServer |
Возвращает или задает максимальное количество TCP-подключений, разрешенных одному серверу. |
| MaxResponseDrainSize |
Возвращает или задает максимальный объем данных, которые можно слить из ответов в байтах. |
| MaxResponseHeadersLength |
Возвращает или задает максимальную длину в килобайтах (1024 байта) заголовков ответа. |
| PreAuthenticate |
Возвращает или задает значение, указывающее, отправляет ли обработчик заголовок авторизации с запросом. |
| Properties |
Возвращает записываемый словарь (т. е. карту) настраиваемых свойств для HttpClient запросов. Словарь инициализирован пуст; вы можете вставлять и запрашивать пары "ключ-значение" для пользовательских обработчиков и специальной обработки. |
| Proxy |
Возвращает или задает пользовательский прокси-сервер, если WindowsProxyUsePolicy для свойства задано использование пользовательского прокси-сервера. |
| ReceiveDataTimeout |
Возвращает или задает время ожидания для получения части данных ответа от сервера. |
| ReceiveHeadersTimeout |
Возвращает или задает время ожидания для получения заголовков ответа от сервера. |
| SendTimeout |
Возвращает или задает время ожидания отправки запроса. |
| ServerCertificateValidationCallback |
Возвращает или задает метод обратного вызова для проверки сертификата сервера. Этот обратный вызов является частью подтверждения SSL. |
| ServerCredentials |
Возвращает или задает учетные данные, используемые клиентом для проверки подлинности на сервере. |
| SslProtocols |
Возвращает или задает коллекцию протоколов TLS/SSL, поддерживаемых клиентом. |
| TcpKeepAliveEnabled |
Возвращает или задает значение, указывающее, включена ли поддержка TCP. |
| TcpKeepAliveInterval |
Возвращает или задает интервал поддержания активности TCP. |
| TcpKeepAliveTime |
Возвращает или задает время ожидания хранения данных TCP. |
| WindowsProxyUsePolicy |
Возвращает или задает параметр прокси-сервера. Это свойство можно задать для отключения прокси-сервера, использования пользовательского прокси-сервера или использования параметров прокси-сервера WinHTTP или WinInet на компьютере. |
Методы
| Имя | Описание |
|---|---|
| Dispose() |
Освобождает неуправляемые ресурсы и удаляет управляемые ресурсы, используемые параметром HttpMessageHandler. (Унаследовано от HttpMessageHandler) |
| Dispose(Boolean) |
Освобождает неуправляемые ресурсы, используемые WinHttpHandlerи при необходимости удаляет управляемые ресурсы. |
| Equals(Object) |
Определяет, равен ли указанный объект текущему объекту. (Унаследовано от Object) |
| GetHashCode() |
Служит хэш-функцией по умолчанию. (Унаследовано от Object) |
| GetType() |
Возвращает Type текущего экземпляра. (Унаследовано от Object) |
| MemberwiseClone() |
Создает неглубокую копию текущей Object. (Унаследовано от Object) |
| SendAsync(HttpRequestMessage, CancellationToken) |
Отправляет HTTP-запрос как асинхронную операцию. |
| ToString() |
Возвращает строку, представляющую текущий объект. (Унаследовано от Object) |