SocketsHttpHandler Clase
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Proporciona el controlador de mensajes predeterminado utilizado por HttpClient en .NET Core 2.1 y versiones posteriores.
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
- Herencia
- Atributos
Comentarios
A partir de .NET Core 2.1, la SocketsHttpHandler
clase proporciona la implementación que usan las clases de red HTTP de nivel superior, como HttpClient. El uso de SocketsHttpHandler
ofrece una serie de ventajas:
Una mejora significativa del rendimiento en comparación con la implementación anterior.
La eliminación de dependencias de plataforma, lo que simplifica la implementación y el mantenimiento. Por ejemplo,
libcurl
ya no es una dependencia de .NET Core para macOS y .NET Core para Linux.Comportamiento coherente en todas las plataformas de .NET.
Si este cambio no es deseable y está en .NET Core 2.1-3.1, puede configurar la aplicación para que use la clase anterior System.Net.Http.HttpClientHandler en su lugar de varias maneras:
Llamando al método de la AppContext.SetSwitch siguiente manera:
AppContext.SetSwitch("System.Net.Http.UseSocketsHttpHandler", false);
AppContext.SetSwitch("System.Net.Http.UseSocketsHttpHandler", False)
Al definir el
System.Net.Http.UseSocketsHttpHandler
modificador en el archivo de configuración de .netcore.runtimeconfig.json :"runtimeOptions": { "configProperties": { "System.Net.Http.UseSocketsHttpHandler": false } }
Al definir una variable de entorno denominada
DOTNET_SYSTEM_NET_HTTP_USESOCKETSHTTPHANDLER
y establecerlafalse
en o en 0.
Estas opciones de configuración no están disponibles a partir de .NET 5.
Constructores
SocketsHttpHandler() |
Crea una instancia de una clase SocketsHttpHandler. |
Propiedades
ActivityHeadersPropagator |
Obtiene o establece el propagador que se va a usar al propagar el seguimiento distribuido y el contexto.
Use |
AllowAutoRedirect |
Obtiene o establece un valor que indica si el controlador debe seguir las respuestas de redirección. |
AutomaticDecompression |
Obtiene o establece el tipo de método de descompresión usado por el controlador para la descompresión automática de la respuesta de contenido HTTP. |
ConnectCallback |
Obtiene o establece una devolución de llamada personalizada que se usa para abrir conexiones nuevas. |
ConnectTimeout |
Obtiene o establece el intervalo de tiempo que se debe esperar antes de que la conexión establezca que se agota el tiempo de espera. |
CookieContainer |
Obtiene o establece el objeto contenedor de cookies administrado. |
Credentials |
Obtiene o establece la información de autenticación usada por este controlador. |
DefaultProxyCredentials |
Cuando se usa el proxy predeterminado (sistema), obtiene o establece las credenciales utilizadas para realizar el envío al servidor proxy predeterminado para la autenticación. |
EnableMultipleHttp2Connections |
Obtiene o establece un valor que indica si se pueden establecer conexiones HTTP/2 adicionales en el mismo servidor. |
EnableMultipleHttp3Connections |
Proporciona el controlador de mensajes predeterminado utilizado por HttpClient en .NET Core 2.1 y versiones posteriores. |
Expect100ContinueTimeout |
Obtiene o establece el valor de tiempo de espera para la respuesta del servidor HTTP 100 Continue. |
InitialHttp2StreamWindowSize |
Define el tamaño inicial de la ventana de recepción de flujo HTTP2 para todas las conexiones abiertas por este SocketsHttpHandler. |
IsSupported |
Obtiene un valor que indica si el controlador se admite en la plataforma actual. |
KeepAlivePingDelay |
Obtiene o establece el retraso de ping de conexión persistente. |
KeepAlivePingPolicy |
Obtiene o establece el comportamiento de ping de conexión persistente. |
KeepAlivePingTimeout |
Obtiene o establece el tiempo de expiración de ping de conexión persistente. |
MaxAutomaticRedirections |
Obtiene o establece el número máximo de redirecciones HTTP permitidas. |
MaxConnectionsPerServer |
Obtiene o establece el número máximo de conexiones TCP simultáneas permitidas en un único servidor. |
MaxResponseDrainSize |
Obtiene o establece la cantidad máxima de datos que se pueden agotar de respuestas en bytes. |
MaxResponseHeadersLength |
Obtiene o establece la longitud máxima, en kilobytes (1024 bytes), de los encabezados de respuesta. |
MeterFactory |
Obtiene o establece el objeto para IMeterFactory crear un personalizado Meter para la SocketsHttpHandler instancia de . |
PlaintextStreamFilter |
Obtiene o establece una devolución de llamada personalizada que proporciona acceso al flujo del protocolo HTTP de texto sin formato. |
PooledConnectionIdleTimeout |
Obtiene o establece el tiempo durante el que una conexión puede estar inactiva en el grupo para que se considere reutilizable. |
PooledConnectionLifetime |
Obtiene o establece el tiempo durante el que una conexión puede estar en el grupo para que se considere reutilizable. |
PreAuthenticate |
Obtiene o establece un valor que indica si el controlador envía un encabezado de autorización con la solicitud. |
Properties |
Obtiene un diccionario grabable (es decir, un mapa) de propiedades personalizadas para las solicitudes HttpClient. El diccionario se inicializa vacío; puede insertar y consultar pares clave-valor para los controladores personalizados y el procesamiento especial. |
Proxy |
Obtiene o establece el proxy personalizado cuando la propiedad UseProxy es |
RequestHeaderEncodingSelector |
Obtiene o establece una devolución de llamada que selecciona para codificar los Encoding valores del encabezado de solicitud. |
ResponseDrainTimeout |
Obtiene o establece el intervalo de tiempo que se va a esperar para que los datos se vacíen de las respuestas. |
ResponseHeaderEncodingSelector |
Obtiene o establece una devolución de llamada que selecciona para descodificar los Encoding valores del encabezado de respuesta. |
SslOptions |
Obtiene o establece el conjunto de opciones que se utiliza para la autenticación TLS del cliente. |
UseCookies |
Obtiene o establece un valor que indica si el controlador debe usar cookies. |
UseProxy |
Obtiene o establece un valor que indica si el controlador debe usar un proxy. |
Métodos
Dispose() |
Libera los recursos no administrados y desecha los recursos administrados que usa HttpMessageHandler. (Heredado de HttpMessageHandler) |
Dispose(Boolean) |
Libera los recursos no administrados que usa el objeto HttpMessageHandler y, de forma opcional, desecha los recursos administrados. (Heredado de HttpMessageHandler) |
Equals(Object) |
Determina si el objeto especificado es igual que el objeto actual. (Heredado de Object) |
GetHashCode() |
Sirve como la función hash predeterminada. (Heredado de Object) |
GetType() |
Obtiene el Type de la instancia actual. (Heredado de Object) |
MemberwiseClone() |
Crea una copia superficial del Object actual. (Heredado de Object) |
Send(HttpRequestMessage, CancellationToken) |
Cuando se invalida en una clase derivada, envía una solicitud HTTP con el token de cancelación y la solicitud especificados. En caso contrario, produce una excepción NotSupportedException. (Heredado de HttpMessageHandler) |
SendAsync(HttpRequestMessage, CancellationToken) |
Envía una solicitud HTTP como una operación asincrónica. (Heredado de HttpMessageHandler) |
ToString() |
Devuelve una cadena que representa el objeto actual. (Heredado de Object) |