SocketsHttpHandler Classe
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
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à
- 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 sufalse
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 |
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 è |
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) |