SocketsHttpHandler Classe

Définition

Fournit le gestionnaire de messages par défaut utilisé par HttpClient dans .NET Core 2.1 et versions ultérieures.

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
Héritage
SocketsHttpHandler
Attributs

Remarques

À compter de .NET Core 2.1, la classe SocketsHttpHandler fournit l’implémentation utilisée par des classes de mise en réseau HTTP de niveau supérieur telles que HttpClient. L’utilisation de SocketsHttpHandler offre un certain nombre d’avantages :

  • Amélioration significative des performances par rapport à l’implémentation précédente.

  • L’élimination des dépendances de plateforme, qui simplifie le déploiement et la maintenance. Par exemple, libcurl n’est plus une dépendance avec .NET Core pour macOS et .NET Core pour Linux.

  • Comportement cohérent sur toutes les plateformes .NET.

Si cette modification n’est pas souhaitable et que vous utilisez .NET Core 2.1-3.1, vous pouvez configurer votre application pour utiliser l’ancienne classe System.Net.Http.HttpClientHandler à la place de plusieurs façons :

  • En appelant la méthode AppContext.SetSwitch comme suit :

    AppContext.SetSwitch("System.Net.Http.UseSocketsHttpHandler", false);
    
    AppContext.SetSwitch("System.Net.Http.UseSocketsHttpHandler", False)
    
  • En définissant le commutateur System.Net.Http.UseSocketsHttpHandler dans le fichier de configuration .netcore.runtimeconfig.json :

    "runtimeOptions": {
      "configProperties": {
          "System.Net.Http.UseSocketsHttpHandler": false
      }
    }
    
  • En définissant une variable d’environnement nommée DOTNET_SYSTEM_NET_HTTP_USESOCKETSHTTPHANDLER et en la définissant sur false ou 0.

Ces options de configuration ne sont pas disponibles à partir de .NET 5.

Constructeurs

SocketsHttpHandler()

Crée une instance d’une classe SocketsHttpHandler.

Propriétés

ActivityHeadersPropagator

Obtient ou définit le propagateur à utiliser lors de la propagation de la trace et du contexte distribués. Utilisez null pour désactiver la propagation.

AllowAutoRedirect

Obtient ou définit une valeur qui indique si le gestionnaire doit suivre les réponses de redirection.

AutomaticDecompression

Obtient ou définit le type de méthode de décompression utilisée par le gestionnaire pour la décompression automatique de la réponse de contenu HTTP.

ConnectCallback

Obtient ou définit un rappel personnalisé utilisé pour ouvrir de nouvelles connexions.

ConnectTimeout

Obtient ou définit l’intervalle de temps à attendre avant l’expiration de la connexion.

CookieContainer

Obtient ou définit l’objet conteneur de cookies managé.

Credentials

Obtient ou définit les informations d’authentification utilisées par ce gestionnaire.

DefaultProxyCredentials

Lorsque le proxy par défaut (système) est utilisé, obtient ou définit les informations d’identification utilisées pour envoyer au serveur proxy par défaut pour l’authentification.

EnableMultipleHttp2Connections

Obtient ou définit une valeur qui indique si des connexions HTTP/2 supplémentaires peuvent être établies sur le même serveur.

EnableMultipleHttp3Connections

Obtient ou définit une valeur qui indique si des connexions HTTP/3 supplémentaires peuvent être établies sur le même serveur.

Expect100ContinueTimeout

Obtient ou définit la valeur de délai d’attente pour la réponse HTTP 100 Continue du serveur.

InitialHttp2StreamWindowSize

Définit la taille initiale de la fenêtre de réception du flux HTTP2 pour toutes les connexions ouvertes par cette SocketsHttpHandler.

IsSupported

Obtient une valeur qui indique si le gestionnaire est pris en charge sur la plateforme actuelle.

KeepAlivePingDelay

Obtient ou définit le délai ping keep alive.

KeepAlivePingPolicy

Obtient ou définit le comportement ping continu.

KeepAlivePingTimeout

Obtient ou définit le délai d’expiration du test ping keep alive.

MaxAutomaticRedirections

Obtient ou définit le nombre maximal de redirections HTTP autorisées.

MaxConnectionsPerServer

Obtient ou définit le nombre maximal de connexions TCP simultanées autorisées sur un seul serveur.

MaxResponseDrainSize

Obtient ou définit la quantité maximale de données qui peuvent être vidées des réponses en octets.

MaxResponseHeadersLength

Obtient ou définit la longueur maximale, en kilo-octets (1024 octets), des en-têtes de réponse.

MeterFactory

Obtient ou définit l'IMeterFactory pour créer un Meter personnalisé pour l’instance de SocketsHttpHandler.

PlaintextStreamFilter

Obtient ou définit un rappel personnalisé qui fournit l’accès au flux de protocole HTTP en texte clair.

PooledConnectionIdleTimeout

Obtient ou définit la durée pendant laquelle une connexion peut être inactive dans le pool pour être considérée comme réutilisable.

PooledConnectionLifetime

Obtient ou définit la durée pendant laquelle une connexion peut se trouver dans le pool pour être considérée comme réutilisable.

PreAuthenticate

Obtient ou définit une valeur qui indique si le gestionnaire envoie un en-tête d’autorisation avec la requête.

Properties

Obtient un dictionnaire accessible en écriture (autrement dit, une carte) de propriétés personnalisées pour les requêtes HttpClient. Le dictionnaire est initialisé vide ; vous pouvez insérer et interroger des paires clé-valeur pour vos gestionnaires personnalisés et traitement spécial.

Proxy

Obtient ou définit le proxy personnalisé lorsque la propriété UseProxy est true.

RequestHeaderEncodingSelector

Obtient ou définit un rappel qui sélectionne l'Encoding pour encoder les valeurs d’en-tête de requête.

ResponseDrainTimeout

Obtient ou définit l’intervalle de temps pour attendre que les données soient vidées des réponses.

ResponseHeaderEncodingSelector

Obtient ou définit un rappel qui sélectionne les Encoding pour décoder les valeurs d’en-tête de réponse.

SslOptions

Obtient ou définit l’ensemble d’options utilisées pour l’authentification TLS du client.

UseCookies

Obtient ou définit une valeur qui indique si le gestionnaire doit utiliser des cookies.

UseProxy

Obtient ou définit une valeur qui indique si le gestionnaire doit utiliser un proxy.

Méthodes

Dispose()

Libère les ressources non managées et supprime les ressources managées utilisées par le HttpMessageHandler.

(Hérité de HttpMessageHandler)
Dispose(Boolean)

Libère les ressources non managées utilisées par le HttpMessageHandler et supprime éventuellement les ressources managées.

(Hérité de HttpMessageHandler)
Equals(Object)

Détermine si l’objet spécifié est égal à l’objet actuel.

(Hérité de Object)
GetHashCode()

Sert de fonction de hachage par défaut.

(Hérité de Object)
GetType()

Obtient la Type de l’instance actuelle.

(Hérité de Object)
MemberwiseClone()

Crée une copie superficielle du Objectactuel.

(Hérité de Object)
Send(HttpRequestMessage, CancellationToken)

En cas de substitution dans une classe dérivée, envoie une requête HTTP avec la requête et le jeton d’annulation spécifiés. Sinon, lève une NotSupportedException.

(Hérité de HttpMessageHandler)
SendAsync(HttpRequestMessage, CancellationToken)

Envoyez une requête HTTP en tant qu’opération asynchrone.

(Hérité de HttpMessageHandler)
ToString()

Retourne une chaîne qui représente l’objet actuel.

(Hérité de Object)

S’applique à