Compartir a través de


SocketsHttpHandler Clase

Definición

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
SocketsHttpHandler
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 en false 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 null para deshabilitar la propagación.

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 true.

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)

Se aplica a