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
- Наследование
- Атрибуты
Комментарии
Начиная с .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 |
Возвращает или задает средство распространения, используемое при распространении распределенной трассировки и контекста.
Используйте |
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 имеет значение |
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) |