SocketsHttpHandler Classe

Définition

Fournit le Gestionnaire de messages par défaut utilisé par HttpClient dans .NET Core 2.1 et ultérieur.

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 SocketsHttpHandler classe fournit l’implémentation utilisée par les classes réseau HTTP de niveau supérieur telles que HttpClient. L’utilisation de SocketsHttpHandler offre un certain nombre d’avantages :

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

  • L’élimination des dépendances de plateforme, ce qui simplifie le déploiement et la maintenance. Par exemple, libcurl n’est plus une dépendance envers .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 System.Net.Http.HttpClientHandler classe à la place de plusieurs façons :

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

    AppContext.SetSwitch("System.Net.Http.UseSocketsHttpHandler", false);
    
    AppContext.SetSwitch("System.Net.Http.UseSocketsHttpHandler", False)
    
  • En définissant le System.Net.Http.UseSocketsHttpHandler commutateur 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 lui affectant la valeur 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é par le gestionnaire pour la décompression automatique de la réponse du contenu HTTP.

ConnectCallback

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

ConnectTimeout

Obtient ou définit la période d'attente jusqu'à l'expiration de l’établissement de la connexion.

CookieContainer

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

Credentials

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

DefaultProxyCredentials

Quand 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

Fournit le Gestionnaire de messages par défaut utilisé par HttpClient dans .NET Core 2.1 et ultérieur.

Expect100ContinueTimeout

Obtient ou définit la valeur du délai d'expiration pour la réponse Continuer HTTP 100 du serveur.

InitialHttp2StreamWindowSize

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

IsSupported

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

KeepAlivePingDelay

Obtient ou définit le délai des requêtes ping de maintien de l’activité.

KeepAlivePingPolicy

Obtient ou définit le comportement des requêtes ping de maintien de l’activité.

KeepAlivePingTimeout

Obtient ou définit le délai d’expiration des requêtes ping de maintien de l’activité.

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 à un seul serveur.

MaxResponseDrainSize

Obtient ou définit la quantité maximale de données qui peuvent être purgées à partir 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 le IMeterFactory pour créer un personnalisé Meter pour le SocketsHttpHandler instance.

PlaintextStreamFilter

Récupère ou définit un rappel personnalisé qui donne accès au flux du protocole HTTP en clair.

PooledConnectionIdleTimeout

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

PooledConnectionLifetime

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

PreAuthenticate

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

Properties

Obtient un dictionnaire accessible en écriture (c’est-à-dire 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 un traitement spécial.

Proxy

Récupère ou définit le proxy personnalisé quand la propriété UseProxy a la valeur true.

RequestHeaderEncodingSelector

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

ResponseDrainTimeout

Obtient ou définit le laps de temps d’attente avant que des données ne soient drainées des réponses.

ResponseHeaderEncodingSelector

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

SslOptions

Obtient ou définit le jeu d’options utilisé 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()

Fait office de fonction de hachage par défaut.

(Hérité de Object)
GetType()

Obtient le Type de l'instance actuelle.

(Hérité de Object)
MemberwiseClone()

Crée une copie superficielle du Object actuel.

(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 un NotSupportedException.

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

Envoie 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 à