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 usado 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 clase SocketsHttpHandler
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:
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 .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 System.Net.Http.HttpClientHandler anterior en su lugar de varias maneras:
Llamando al método AppContext.SetSwitch de la siguiente manera:
AppContext.SetSwitch("System.Net.Http.UseSocketsHttpHandler", false);
AppContext.SetSwitch("System.Net.Http.UseSocketsHttpHandler", False)
Al definir el modificador de
System.Net.Http.UseSocketsHttpHandler
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 establecerla enfalse
o 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 utilizado 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 nuevas conexiones. |
ConnectTimeout |
Obtiene o establece el intervalo de tiempo que se va a esperar antes de que se agote el tiempo de espera de la conexión. |
CookieContainer |
Obtiene o establece el objeto contenedor de cookies administrado. |
Credentials |
Obtiene o establece la información de autenticación utilizada por este controlador. |
DefaultProxyCredentials |
Cuando se usa el proxy predeterminado (sistema), obtiene o establece las credenciales usadas para enviar 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 |
Obtiene o establece un valor que indica si se pueden establecer conexiones HTTP/3 adicionales en el mismo servidor. |
Expect100ContinueTimeout |
Obtiene o establece el valor de tiempo de espera para la respuesta HTTP 100 Continue del servidor. |
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 mantenimiento activo. |
KeepAlivePingPolicy |
Obtiene o establece el comportamiento de ping de mantenimiento activo. |
KeepAlivePingTimeout |
Obtiene o establece el tiempo de espera de ping de mantenimiento activo. |
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 a un único servidor. |
MaxResponseDrainSize |
Obtiene o establece la cantidad máxima de datos que se pueden purgar de las 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 IMeterFactory para crear un Meter personalizado para la instancia de SocketsHttpHandler. |
PlaintextStreamFilter |
Obtiene o establece una devolución de llamada personalizada que proporciona acceso a la secuencia del protocolo HTTP de texto no cifrado. |
PooledConnectionIdleTimeout |
Obtiene o establece cuánto tiempo puede estar inactiva una conexión en el grupo para considerarse reutilizable. |
PooledConnectionLifetime |
Obtiene o establece cuánto tiempo puede estar una conexión en el grupo que se va a considerar reutilizable. |
PreAuthenticate |
Obtiene o establece un valor que indica si el controlador envía un encabezado authorization 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 el Encoding para codificar los valores del encabezado de solicitud. |
ResponseDrainTimeout |
Obtiene o establece el intervalo de tiempo que se va a esperar a que los datos se agoten de las respuestas. |
ResponseHeaderEncodingSelector |
Obtiene o establece una devolución de llamada que selecciona el Encoding para descodificar los valores del encabezado de respuesta. |
SslOptions |
Obtiene o establece el conjunto de opciones que se usan para la autenticación TLS de 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 elimina los recursos administrados usados por el HttpMessageHandler. (Heredado de HttpMessageHandler) |
Dispose(Boolean) |
Libera los recursos no administrados usados por el HttpMessageHandler y, opcionalmente, elimina los recursos administrados. (Heredado de HttpMessageHandler) |
Equals(Object) |
Determina si el objeto especificado es igual al objeto actual. (Heredado de Object) |
GetHashCode() |
Actúa como función hash predeterminada. (Heredado de Object) |
GetType() |
Obtiene el Type de la instancia actual. (Heredado de Object) |
MemberwiseClone() |
Crea una copia superficial del Objectactual. (Heredado de Object) |
Send(HttpRequestMessage, CancellationToken) |
Cuando se invalida en una clase derivada, envía una solicitud HTTP con la solicitud y el token de cancelación especificados. De lo contrario, inicia un NotSupportedException. (Heredado de HttpMessageHandler) |
SendAsync(HttpRequestMessage, CancellationToken) |
Envíe una solicitud HTTP como una operación asincrónica. (Heredado de HttpMessageHandler) |
ToString() |
Devuelve una cadena que representa el objeto actual. (Heredado de Object) |