SocketsHttpHandler Classe

Definizione

Fornisce il gestore di messaggi predefinito usato da HttpClient in .NET Core 2.1 e versioni successive.

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
Ereditarietà
SocketsHttpHandler
Attributi

Commenti

A partire da .NET Core 2.1, la SocketsHttpHandler classe fornisce l'implementazione usata dalle classi di rete HTTP di livello superiore, ad esempio HttpClient. L'uso di SocketsHttpHandler offre numerosi vantaggi:

  • Miglioramento significativo delle prestazioni rispetto all'implementazione precedente.

  • Eliminazione delle dipendenze della piattaforma, che semplifica la distribuzione e la manutenzione. Ad esempio, libcurl non è più una dipendenza da .NET Core per macOS e .NET Core per Linux.

  • Comportamento coerente in tutte le piattaforme .NET.

Se questa modifica è indesiderata e si è in .NET Core 2.1-3.1, è possibile configurare l'applicazione per usare la classe precedente System.Net.Http.HttpClientHandler invece in diversi modi:

  • Chiamando il AppContext.SetSwitch metodo come indicato di seguito:

    AppContext.SetSwitch("System.Net.Http.UseSocketsHttpHandler", false);
    
    AppContext.SetSwitch("System.Net.Http.UseSocketsHttpHandler", False)
    
  • Definendo l'opzione System.Net.Http.UseSocketsHttpHandler nel file di configurazione .netcore.runtimeconfig.json :

    "runtimeOptions": {
      "configProperties": {
          "System.Net.Http.UseSocketsHttpHandler": false
      }
    }
    
  • Definendo una variabile di ambiente denominata DOTNET_SYSTEM_NET_HTTP_USESOCKETSHTTPHANDLER e impostandola su false o 0.

Queste opzioni di configurazione non sono disponibili a partire da .NET 5.

Costruttori

SocketsHttpHandler()

Crea un'istanza di una classe SocketsHttpHandler.

Proprietà

ActivityHeadersPropagator

Ottiene o imposta il propagatore da usare durante la propagazione della traccia distribuita e del contesto. Usare null per disabilitare la propagazione.

AllowAutoRedirect

Ottiene o imposta un valore che indica se il gestore deve seguire le risposte di reindirizzamento.

AutomaticDecompression

Ottiene o imposta il tipo di metodo di decompressione usato dal gestore per la decompressione automatica della risposta del contenuto HTTP.

ConnectCallback

Ottiene o imposta un callback personalizzato usato per aprire nuove connessioni.

ConnectTimeout

Ottiene o imposta l'intervallo di tempo di attesa prima che si verifichi il timeout della richiesta.

CookieContainer

Ottiene o imposta l'oggetto contenitore del cookie gestito.

Credentials

Ottiene o imposta le informazioni sull'autenticazione usate dal gestore.

DefaultProxyCredentials

Quando viene usato il proxy predefinito (di sistema), ottiene o imposta le credenziali da inviare al server proxy predefinito per l'autenticazione.

EnableMultipleHttp2Connections

Ottiene o imposta un valore che indica se è possibile stabilire connessioni HTTP/2 aggiuntive allo stesso server quando il numero massimo di flussi simultanei viene raggiunto in tutte le connessioni esistenti.

Expect100ContinueTimeout

Ottiene o imposta il valore di timeout per la risposta HTTP 100 Continue del server.

InitialHttp2StreamWindowSize

Definisce le dimensioni iniziali della finestra di ricezione del flusso HTTP2 per tutte le connessioni aperte da questo SocketsHttpHandleroggetto .

IsSupported

Ottiene un valore che indica se il gestore è supportato nella piattaforma corrente.

KeepAlivePingDelay

Ottiene o imposta il ritardo del ping keep-alive.

KeepAlivePingPolicy

Ottiene o imposta il comportamento del ping keep-alive.

KeepAlivePingTimeout

Ottiene o imposta il timeout del ping keep-alive.

MaxAutomaticRedirections

Ottiene o imposta il numero massimo di reindirizzamenti HTTP consentiti.

MaxConnectionsPerServer

Ottiene o imposta il numero massimo di connessioni TCP simultanee consentite a un singolo server.

MaxResponseDrainSize

Ottiene o imposta la quantità massima di dati che possono essere svuotati dalle risposte in byte.

MaxResponseHeadersLength

Ottiene o imposta la lunghezza massima in kilobyte (1024 byte) delle intestazioni di risposta.

MeterFactory

Ottiene o imposta l'oggetto IMeterFactory per creare un oggetto personalizzato Meter per l'istanza SocketsHttpHandler .

PlaintextStreamFilter

Ottiene o imposta un callback personalizzato che consente l'accesso al flusso del protocollo HTTP senza crittografia.

PooledConnectionIdleTimeout

Ottiene o imposta il tempo per il quale una connessione può rimanere inattiva nel pool ed essere considerata riutilizzabile.

PooledConnectionLifetime

Ottiene o imposta il tempo per il quale una connessione può rimanere nel pool ed essere considerata riutilizzabile.

PreAuthenticate

Ottiene o imposta un valore che indica se il gestore invia un'intestazione di autorizzazione con la richiesta.

Properties

Ottiene un dizionario scrivibile , ovvero una mappa, di proprietà personalizzate per le richieste HttpClient. Il dizionario viene inizializzato vuoto. È possibile inserire e cercare coppie chiave-valore per i gestori personalizzati e l'elaborazione speciale.

Proxy

Ottiene o imposta il proxy personalizzato quando la proprietà UseProxy è true.

RequestHeaderEncodingSelector

Ottiene o imposta un callback che seleziona l'oggetto per codificare i valori dell'intestazione Encoding della richiesta.

ResponseDrainTimeout

Ottiene o imposta l'intervallo di tempo di attesa per lo svuotamento dei dati dalle risposte.

ResponseHeaderEncodingSelector

Ottiene o imposta un callback che seleziona l'oggetto per decodificare i valori dell'intestazione Encoding della risposta.

SslOptions

Ottiene o imposta il set di opzioni usato per l'autenticazione TLS del client.

UseCookies

Ottiene o imposta un valore che indica se il gestore deve usare i cookie.

UseProxy

Ottiene o imposta un valore che indica se il gestore deve usare un proxy.

Metodi

Dispose()

Rilascia le risorse non gestite ed elimina le risorse gestite utilizzate dall'oggetto HttpMessageHandler.

(Ereditato da HttpMessageHandler)
Dispose(Boolean)

Rilascia le risorse non gestite usate da HttpMessageHandler e, facoltativamente, elimina le risorse gestite.

(Ereditato da HttpMessageHandler)
Equals(Object)

Determina se l'oggetto specificato è uguale all'oggetto corrente.

(Ereditato da Object)
GetHashCode()

Funge da funzione hash predefinita.

(Ereditato da Object)
GetType()

Ottiene l'oggetto Type dell'istanza corrente.

(Ereditato da Object)
MemberwiseClone()

Crea una copia superficiale dell'oggetto Object corrente.

(Ereditato da Object)
Send(HttpRequestMessage, CancellationToken)

Quando viene eseguito l'override in una classe derivata, invia una richiesta HTTP con la richiesta e il token di annullamento specificati. in caso contrario, genera NotSupportedException.

(Ereditato da HttpMessageHandler)
SendAsync(HttpRequestMessage, CancellationToken)

Inviare una richiesta HTTP come operazione asincrona.

(Ereditato da HttpMessageHandler)
ToString()

Restituisce una stringa che rappresenta l'oggetto corrente.

(Ereditato da Object)

Si applica a