Teilen über


SocketsHttpHandler Klasse

Definition

Stellt den Standardnachrichtenhandler bereit, der von HttpClient in .NET Core 2.1 und höher verwendet wird.

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
Vererbung
SocketsHttpHandler
Attribute

Hinweise

Ab .NET Core 2.1 stellt die -Klasse die SocketsHttpHandler Implementierung bereit, die von höheren HTTP-Netzwerkklassen wie HttpClientverwendet wird. Die Nutzung bietet SocketsHttpHandler eine Reihe von Vorteilen:

  • Eine beträchtliche Leistungssteigerung im Vergleich zur früheren Implementierung.

  • Die Beseitigung von Plattformabhängigkeiten, die Bereitstellung und Wartung vereinfacht. Beispielsweise libcurl ist keine Abhängigkeit mehr von .NET Core für macOS und .NET Core für Linux.

  • Konsistentes Verhalten auf allen .NET-Plattformen.

Wenn diese Änderung unerwünscht ist und Sie .NET Core 2.1-3.1 verwenden, können Sie Ihre Anwendung auf verschiedene Arten so konfigurieren, dass sie stattdessen die ältere System.Net.Http.HttpClientHandler Klasse verwendet:

  • Indem Sie die AppContext.SetSwitch -Methode wie folgt aufrufen:

    AppContext.SetSwitch("System.Net.Http.UseSocketsHttpHandler", false);
    
    AppContext.SetSwitch("System.Net.Http.UseSocketsHttpHandler", False)
    
  • Durch Definieren des Schalters System.Net.Http.UseSocketsHttpHandler in der .netcore.runtimeconfig.json Konfigurationsdatei:

    "runtimeOptions": {
      "configProperties": {
          "System.Net.Http.UseSocketsHttpHandler": false
      }
    }
    
  • Indem Sie eine Umgebungsvariable mit dem Namen definieren DOTNET_SYSTEM_NET_HTTP_USESOCKETSHTTPHANDLER und auf entweder false oder 0 festlegen.

Diese Konfigurationsoptionen sind ab .NET 5 nicht verfügbar.

Konstruktoren

SocketsHttpHandler()

Erstellt eine Instanz einer SocketsHttpHandler-Klasse.

Eigenschaften

ActivityHeadersPropagator

Ruft den Verteiler ab, der beim Verteilen der verteilten Ablaufverfolgung und des Kontexts verwendet werden soll, oder legt diesen fest. Verwenden Sie null , um die Weitergabe zu deaktivieren.

AllowAutoRedirect

Ruft einen Wert ab, der angibt, ob der Handler Umleitungsantworten folgen soll, oder legt diesen Wert fest.

AutomaticDecompression

Ruft den Typ der Dekomprimierungsmethode ab, die vom Handler für die automatische Dekomprimierung von Antworten mit HTTP-Inhalt verwendet wird, oder legt den Typ fest.

ConnectCallback

Ruft einen benutzerdefinierten Rückruf ab oder legt ihn fest, der zum Öffnen neuer Verbindungen verwendet wird.

ConnectTimeout

Ruft die Zeitspanne ab, nach der das Zeitlimit der Verbindungsherstellung überschritten ist, oder legt diese fest.

CookieContainer

Ruft das Containerobjekt für verwaltete Cookies ab oder legt dieses fest.

Credentials

Ruft von diesem Handler verwendete Authentifizierungsinformationen ab oder legt diese fest.

DefaultProxyCredentials

Wenn der Standardproxy (Systemproxy) verwendet wird, werden die Anmeldeinformationen abgerufen oder festgelegt, die verwendet werden, um den Standardproxyserver für die Authentifizierung zu übermitteln.

EnableMultipleHttp2Connections

Ruft einen Wert ab, der angibt, ob zusätzliche HTTP/2-Verbindungen mit demselben Server hergestellt werden können, oder legt diesen fest.

EnableMultipleHttp3Connections

Stellt den Standardnachrichtenhandler bereit, der von HttpClient in .NET Core 2.1 und höher verwendet wird.

Expect100ContinueTimeout

Ruft den Timeoutwert für die Antwort des Servers zur HTTP 100-Fortsetzung ab oder legt ihn fest.

InitialHttp2StreamWindowSize

Definiert die anfängliche Größe des HTTP2-Datenstrom-Empfangsfensters für alle Verbindungen, die mit diesem SocketsHttpHandlergeöffnet werden.

IsSupported

Ruft einen Wert ab, der angibt, ob der Handler auf der aktuellen Plattform unterstützt wird.

KeepAlivePingDelay

Ruft die Keep-Alive-Pingverzögerung ab oder legt sie fest.

KeepAlivePingPolicy

Ruft das Keep-Alive-Pingverhalten ab oder legt es fest.

KeepAlivePingTimeout

Ruft das Keep-Alive-Pingtimeout ab oder legt es fest.

MaxAutomaticRedirections

Ruft die maximale Anzahl von zulässigen HTTP-Umleitungen ab oder legt diese fest.

MaxConnectionsPerServer

Ruft die maximale Anzahl gleichzeitiger TCP-Verbindungen ab, die für einen einzelnen Server zulässig sind, oder legt diese fest.

MaxResponseDrainSize

Ruft die maximale Datenmenge aus Antworten in Byte ab oder legt diese fest.

MaxResponseHeadersLength

Ruft die maximale Länge des Antwortheaders in Kilobyte (1024 Byte) ab oder legt diese fest.

MeterFactory

Ruft den IMeterFactory ab, um einen benutzerdefinierten Meter für die SocketsHttpHandler instance zu erstellen, oder legt diesen fest.

PlaintextStreamFilter

Ruft einen benutzerdefinierten Rückruf ab, der Zugriff auf den HTTP-Protokolldatenstrom im Klartext bietet, oder legt diesen fest.

PooledConnectionIdleTimeout

Ruft ab oder legt fest, wie lange sich eine Verbindung im Leerlauf im Pool befinden kann, damit sie als wiederverwendbar eingestuft wird.

PooledConnectionLifetime

Ruft ab oder legt fest, wie lange sich eine Verbindung im Pool befinden kann, damit sie als wiederverwendbar eingestuft wird.

PreAuthenticate

Ruft einen Wert ab, der angibt, ob vom Handler mit der Anforderung ein Autorisierungsheader gesendet wird, oder legt diesen fest.

Properties

Ruft ein beschreibbares Wörterbuch (d. h. eine Zuordnung) mit benutzerdefinierten Eigenschaften für die HttpClient-Anforderungen ab. Das Wörterbuch ist zunächst leer. Sie können Schlüssel-Wert-Paare für benutzerdefinierte Handler und die spezielle Verarbeitung einfügen und abfragen.

Proxy

Ruft den benutzerdefinierten Proxy ab, wenn die UseProxy-Eigenschaft true ist, oder legt diesen fest.

RequestHeaderEncodingSelector

Ruft einen Rückruf ab, der die zum Codieren von Anforderungsheaderwerten auswählt, oder legt diesen Encoding fest.

ResponseDrainTimeout

Ruft die Wartezeit für das Entnehmen von Daten aus Antworten ab oder legt sie fest.

ResponseHeaderEncodingSelector

Ruft einen Rückruf ab, der die zum Decodieren von Encoding Antwortheaderwerten auswählt, oder legt diesen fest.

SslOptions

Ruft die Optionen ab, die für die TLS-Clientauthentifizierung verwendet werden, oder legt diese fest.

UseCookies

Ruft einen Wert ab, der angibt, ob die Handler Cookies verwenden sollen, oder legt ihn fest.

UseProxy

Ruft einen Wert ab, der angibt, ob der Handler einen Proxy verwenden sollte, oder legt ihn fest.

Methoden

Dispose()

Gibt die vom HttpMessageHandler verwendeten, nicht verwalteten Ressourcen frei und verwirft die verwalteten Ressourcen.

(Geerbt von HttpMessageHandler)
Dispose(Boolean)

Gibt die vom HttpMessageHandler verwendeten, nicht verwalteten Ressourcen frei und verwirft optional auch die verwalteten Ressourcen.

(Geerbt von HttpMessageHandler)
Equals(Object)

Bestimmt, ob das angegebene Objekt gleich dem aktuellen Objekt ist.

(Geerbt von Object)
GetHashCode()

Fungiert als Standardhashfunktion.

(Geerbt von Object)
GetType()

Ruft den Type der aktuellen Instanz ab.

(Geerbt von Object)
MemberwiseClone()

Erstellt eine flache Kopie des aktuellen Object.

(Geerbt von Object)
Send(HttpRequestMessage, CancellationToken)

Sendet eine HTTP-Anforderung mit der angegebenen Anforderung und einem Abbruchtoken, wenn eine Überschreibung in einer abgeleiteten Klasse erfolgt. Löst andernfalls eine NotSupportedException aus.

(Geerbt von HttpMessageHandler)
SendAsync(HttpRequestMessage, CancellationToken)

Senden Sie eine HTTP-Anforderung als asynchronen Vorgang.

(Geerbt von HttpMessageHandler)
ToString()

Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt.

(Geerbt von Object)

Gilt für: