Comparteix a través de


SocketsHttpHandler Clase

Definición

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
SocketsHttpHandler
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 establecerla false 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 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 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 true.

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)

Se aplica a