Condividi tramite


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 classe SocketsHttpHandler fornisce l'implementazione usata da 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 usa .NET Core 2.1-3.1, è possibile configurare l'applicazione in modo da usare la classe System.Net.Http.HttpClientHandler precedente invece in diversi modi:

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

    AppContext.SetSwitch("System.Net.Http.UseSocketsHttpHandler", false);
    
    AppContext.SetSwitch("System.Net.Http.UseSocketsHttpHandler", False)
    
  • Definendo l'opzione di 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 utilizzare 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 utilizzato dal gestore per la decompressione automatica della risposta al contenuto HTTP.

ConnectCallback

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

ConnectTimeout

Ottiene o imposta l'intervallo di tempo di attesa prima che la connessione stabilisa il timeout.

CookieContainer

Ottiene o imposta l'oggetto contenitore di cookie gestiti.

Credentials

Ottiene o imposta le informazioni di autenticazione utilizzate da questo gestore.

DefaultProxyCredentials

Quando viene usato il proxy predefinito (di sistema), ottiene o imposta le credenziali usate per l'invio 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.

EnableMultipleHttp3Connections

Ottiene o imposta un valore che indica se è possibile stabilire connessioni HTTP/3 aggiuntive allo stesso server.

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

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 ping keep-alive.

KeepAlivePingTimeout

Ottiene o imposta il timeout 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 è possibile svuotare dalle risposte in byte.

MaxResponseHeadersLength

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

MeterFactory

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

PlaintextStreamFilter

Ottiene o imposta un callback personalizzato che fornisce l'accesso al flusso del protocollo HTTP in testo non crittografato.

PooledConnectionIdleTimeout

Ottiene o imposta per quanto tempo una connessione può essere inattiva nel pool da considerare riutilizzabile.

PooledConnectionLifetime

Ottiene o imposta la durata di una connessione nel pool da considerare 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 ed eseguire query su 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 il Encoding per codificare i valori dell'intestazione della richiesta.

ResponseDrainTimeout

Ottiene o imposta l'intervallo di tempo in cui attendere lo svuotamento dei dati dalle risposte.

ResponseHeaderEncodingSelector

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

SslOptions

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

UseCookies

Ottiene o imposta un valore che indica se il gestore deve utilizzare 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 usate dal HttpMessageHandler.

(Ereditato da HttpMessageHandler)
Dispose(Boolean)

Rilascia le risorse non gestite usate dal 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 il Type dell'istanza corrente.

(Ereditato da Object)
MemberwiseClone()

Crea una copia superficiale del Objectcorrente.

(Ereditato da Object)
Send(HttpRequestMessage, CancellationToken)

Quando sottoposto a override in una classe derivata, invia una richiesta HTTP con la richiesta e il token di annullamento specificati. In caso contrario, genera un 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