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


SocketsHttpHandler Класс

Определение

Предоставляет обработчик сообщений по умолчанию, используемый HttpClient в .NET Core 2.1 и более поздних версиях.

public ref class SocketsHttpHandler sealed : System::Net::Http::HttpMessageHandler
[System.Runtime.Versioning.UnsupportedOSPlatform("browser")]
public sealed class SocketsHttpHandler : System.Net.Http.HttpMessageHandler
public sealed class SocketsHttpHandler : System.Net.Http.HttpMessageHandler
[<System.Runtime.Versioning.UnsupportedOSPlatform("browser")>]
type SocketsHttpHandler = class
    inherit HttpMessageHandler
type SocketsHttpHandler = class
    inherit HttpMessageHandler
Public NotInheritable Class SocketsHttpHandler
Inherits HttpMessageHandler
Наследование
SocketsHttpHandler
Атрибуты

Комментарии

Начиная с .NET Core 2.1, класс предоставляет реализацию, используемую сетевыми классами HTTP более высокого уровня, SocketsHttpHandler такими как HttpClient. Использование SocketsHttpHandler предоставляет ряд преимуществ:

  • Значительное улучшение производительности по сравнению с предыдущей реализацией.

  • Устранение зависимостей платформы, что упрощает развертывание и обслуживание. Например, libcurl больше не является зависимостью от .NET Core для macOS и .NET Core для Linux.

  • Согласованное поведение на всех платформах .NET.

Если это изменение нежелательно и вы используете .NET Core 2.1–3.1, вы можете настроить приложение для использования старого System.Net.Http.HttpClientHandler класса несколькими способами:

  • Вызовите AppContext.SetSwitch метод следующим образом:

    AppContext.SetSwitch("System.Net.Http.UseSocketsHttpHandler", false);
    
    AppContext.SetSwitch("System.Net.Http.UseSocketsHttpHandler", False)
    
  • Определив System.Net.Http.UseSocketsHttpHandler параметр в файле конфигурации .netcore.runtimeconfig.json :

    "runtimeOptions": {
      "configProperties": {
          "System.Net.Http.UseSocketsHttpHandler": false
      }
    }
    
  • Определив переменную среды с именем DOTNET_SYSTEM_NET_HTTP_USESOCKETSHTTPHANDLER и задав для нее значение false или 0.

Эти параметры конфигурации недоступны, начиная с .NET 5.

Конструкторы

SocketsHttpHandler()

Создает экземпляр класса SocketsHttpHandler.

Свойства

ActivityHeadersPropagator

Возвращает или задает средство распространения, используемое при распространении распределенной трассировки и контекста. Используйте null для отключения распространения.

AllowAutoRedirect

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

AutomaticDecompression

Возвращает или задает тип метода распаковки, используемый обработчиком для автоматической распаковки содержимого HTTP-ответа.

ConnectCallback

Возвращает или задает настраиваемый обратный вызов, используемый для открытия новых подключений.

ConnectTimeout

Возвращает или задает время ожидания для установки подключения.

CookieContainer

Возвращает или задает управляемый объект контейнера файлов cookie.

Credentials

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

DefaultProxyCredentials

Если используется прокси-сервер по умолчанию (системный), возвращает или задает учетные данные, используемые для отправки на прокси-сервер по умолчанию для проверки подлинности.

EnableMultipleHttp2Connections

Возвращает или задает значение, указывающее, можно ли установить дополнительные подключения HTTP/2 к тому же серверу.

EnableMultipleHttp3Connections

Предоставляет обработчик сообщений по умолчанию, используемый HttpClient в .NET Core 2.1 и более поздних версиях.

Expect100ContinueTimeout

Возвращает или задает время ожидания получения ответа с кодом HTTP 100 Continue ("Продолжай") от сервера.

InitialHttp2StreamWindowSize

Определяет начальный размер окна получения потока HTTP2 для всех подключений, открытых этим SocketsHttpHandler.

IsSupported

Возвращает значение, указывающее, поддерживается ли обработчик на текущей платформе.

KeepAlivePingDelay

Возвращает или задает задержку проверки на активность.

KeepAlivePingPolicy

Возвращает или задает поведение проверки на активность.

KeepAlivePingTimeout

Возвращает или задает время ожидания проверки на активность.

MaxAutomaticRedirections

Возвращает или задает максимальное количество разрешенных перенаправлений HTTP.

MaxConnectionsPerServer

Возвращает или задает максимальное разрешенное число одновременных подключений TCP к одному серверу.

MaxResponseDrainSize

Возвращает или задает максимальный объем данных, который может быть извлечен из ответов в байтах.

MaxResponseHeadersLength

Возвращает или задает максимальную длину заголовков ответов, выраженную в килобайтах (1024 байта).

MeterFactory

Возвращает или задает объект для IMeterFactory создания пользовательского Meter объекта для экземпляра SocketsHttpHandler .

PlaintextStreamFilter

Позволяет получить или задать пользовательский обратный вызов, который предоставляет доступ к потоку протокола HTTP с обычным текстом.

PooledConnectionIdleTimeout

Получает или задает время неактивности соединения в пуле, после которого оно будет считаться доступным для повторного использования.

PooledConnectionLifetime

Получает или задает время соединения в пуле, после которого оно будет считаться доступным для повторного использования.

PreAuthenticate

Получает или задает значение, указывающее, будет ли обработчик отправлять заголовок авторизации вместе с запросом.

Properties

Возвращает доступный для записи словарь (т. е. карту) пользовательских свойств для запросов HttpClient. Словарь инициализируется пустым. Можно вставить и запросить пары "ключ-значение" для пользовательских обработчиков и особой обработки.

Proxy

Возвращает или задает настраиваемый прокси-сервер, если свойство UseProxy имеет значение true.

RequestHeaderEncodingSelector

Возвращает или задает обратный вызов, который выбирает для кодирования значений Encoding заголовка запроса.

ResponseDrainTimeout

Возвращает или задает период времени, в течение которого данные должны быть извлечены из ответов.

ResponseHeaderEncodingSelector

Возвращает или задает обратный вызов, который выбирает для декодирования значений Encoding заголовка ответа.

SslOptions

Возвращает или задает набор параметров, используемых для проверки подлинности клиента TLS.

UseCookies

Возвращает или задает значение, указывающее, должен ли обработчик использовать файлы cookie.

UseProxy

Возвращает или задает значение, указывающее, должен ли обработчик использовать прокси-сервер.

Методы

Dispose()

Освобождает неуправляемые ресурсы и удаляет управляемые ресурсы, используемые объектом HttpMessageHandler.

(Унаследовано от HttpMessageHandler)
Dispose(Boolean)

Освобождает неуправляемые ресурсы, используемые объектом HttpMessageHandler, и опционально удаляет управляемые ресурсы.

(Унаследовано от HttpMessageHandler)
Equals(Object)

Определяет, равен ли указанный объект текущему объекту.

(Унаследовано от Object)
GetHashCode()

Служит хэш-функцией по умолчанию.

(Унаследовано от Object)
GetType()

Возвращает объект Type для текущего экземпляра.

(Унаследовано от Object)
MemberwiseClone()

Создает неполную копию текущего объекта Object.

(Унаследовано от Object)
Send(HttpRequestMessage, CancellationToken)

При переопределении в производном классе отправляет HTTP-запрос с указанным запросом и маркером отмены. В противном случае создается исключение NotSupportedException.

(Унаследовано от HttpMessageHandler)
SendAsync(HttpRequestMessage, CancellationToken)

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

(Унаследовано от HttpMessageHandler)
ToString()

Возвращает строку, представляющую текущий объект.

(Унаследовано от Object)

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