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


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

Комментарии

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 для свойства задано Manualзначение .

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)

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