HttpClient Klasse

Definition

Stellt eine Klasse zum Senden von HTTP-Anforderungen und empfangen von HTTP-Antworten von einer Ressource bereit, die durch einen URI identifiziert wird.

public ref class HttpClient : System::Net::Http::HttpMessageInvoker
public class HttpClient : System.Net.Http.HttpMessageInvoker
type HttpClient = class
    inherit HttpMessageInvoker
Public Class HttpClient
Inherits HttpMessageInvoker
Vererbung

Beispiele

// HttpClient is intended to be instantiated once per application, rather than per-use. See Remarks.
static readonly HttpClient client = new HttpClient();

static async Task Main()
{
    // Call asynchronous network methods in a try/catch block to handle exceptions.
    try
    {
        using HttpResponseMessage response = await client.GetAsync("http://www.contoso.com/");
        response.EnsureSuccessStatusCode();
        string responseBody = await response.Content.ReadAsStringAsync();
        // Above three lines can be replaced with new helper method below
        // string responseBody = await client.GetStringAsync(uri);

        Console.WriteLine(responseBody);
    }
    catch (HttpRequestException e)
    {
        Console.WriteLine("\nException Caught!");
        Console.WriteLine("Message :{0} ", e.Message);
    }
}
open System.Net.Http

// HttpClient is intended to be instantiated once per application, rather than per-use. See Remarks.
let client = new HttpClient()

let main =
    task {
        // Call asynchronous network methods in a try/catch block to handle exceptions.
        try
            use! response = client.GetAsync "http://www.contoso.com/"
            response.EnsureSuccessStatusCode() |> ignore
            let! responseBody = response.Content.ReadAsStringAsync()
            // Above three lines can be replaced with new helper method below
            // let! responseBody = client.GetStringAsync uri

            printfn $"{responseBody}"
        with
        | :? HttpRequestException as e ->
            printfn "\nException Caught!"
            printfn $"Message :{e.Message} "
    }

main.Wait()
' HttpClient is intended to be instantiated once per application, rather than per-use. See Remarks.
Shared ReadOnly client As HttpClient = New HttpClient()

Private Shared Async Function Main() As Task
    ' Call asynchronous network methods in a try/catch block to handle exceptions.
    Try
        Using response As HttpResponseMessage = Await client.GetAsync("http://www.contoso.com/")
            response.EnsureSuccessStatusCode()
            Dim responseBody As String = Await response.Content.ReadAsStringAsync()
            ' Above three lines can be replaced with new helper method below
            ' Dim responseBody As String = Await client.GetStringAsync(uri)

            Console.WriteLine(responseBody)
        End Using
    Catch e As HttpRequestException
        Console.WriteLine(Environment.NewLine & "Exception Caught!")
        Console.WriteLine("Message :{0} ", e.Message)
    End Try
End Function

Hinweise

Die HttpClient Klasseninstanz fungiert als Sitzung zum Senden von HTTP-Anforderungen. Eine HttpClient Instanz ist eine Sammlung von Einstellungen, die auf alle Anforderungen angewendet werden, die von dieser Instanz ausgeführt werden. Darüber hinaus verwendet jede HttpClient Instanz einen eigenen Verbindungspool und isoliert die Anforderungen von Anforderungen, die von anderen HttpClient Instanzen ausgeführt werden.

Instancing

HttpClient soll einmal instanziiert und während der gesamten Lebensdauer einer Anwendung wiederverwendet werden. In .NET Core und .NET 5+ werden innerhalb der HttpClient-Handlerinstanz Verbindungen gepoolt und über mehrere Anforderungen hinweg wiederverwendet. Wenn Sie eine HttpClient Klasse für jede Anforderung instanziieren, wird die Anzahl der verfügbaren Sockets unter schweren Lasten erschöpft. Diese Auslastung führt zu SocketException Fehlern.

Sie können zusätzliche Optionen konfigurieren, indem Sie einen „Handler“, wie z. B. HttpClientHandler (oder SocketsHttpHandler in .NET Core 2.1 oder später), als Element des Konstruktors übergeben. Die Verbindungseigenschaften des Handlers können nicht geändert werden, nachdem eine Anforderung übermittelt wurde. Ein Grund zum Erstellen einer neuen HttpClient Instanz wäre daher, wenn Sie die Verbindungseigenschaften ändern müssen. Wenn unterschiedliche Anforderungen unterschiedliche Einstellungen erfordern, kann dies auch dazu führen, dass eine Anwendung mehrere HttpClient Instanzen aufweist, wobei jede Instanz entsprechend konfiguriert ist und dann Anforderungen auf dem relevanten Client ausgestellt werden.

HttpClient löst DNS-Einträge nur auf, wenn eine Verbindung erstellt wird. Die vom DNS-Server angegebene Gültigkeitsdauer (Time To Live, TTL) wird nicht nachverfolgt. Wenn sich DNS-Einträge regelmäßig ändern, was in einigen Containerszenarien passieren kann, berücksichtigt der Client diese Updates nicht. Um dieses Problem zu beheben, können Sie die Lebensdauer der Verbindung einschränken, indem Sie die SocketsHttpHandler.PooledConnectionLifetime Eigenschaft festlegen, sodass die DNS-Suche erforderlich ist, wenn die Verbindung ersetzt wird.

public class GoodController : ApiController
{
    private static readonly HttpClient httpClient;

    static GoodController()
    {
        var socketsHandler = new SocketsHttpHandler
        {
            PooledConnectionLifetime = TimeSpan.FromMinutes(2)
        };

        httpClient = new HttpClient(socketsHandler);
    }
}

Als Alternative zum Erstellen nur einer HttpClient-Instanz können Sie auch IHttpClientFactory verwenden, um die HttpClient-Instanzen für Sie zu verwalten. Weitere Informationen finden Sie unter Richtlinien für die Verwendung von HttpClient.

Ableitung

Dies HttpClient dient auch als Basisklasse für spezifischere HTTP-Clients. Ein Beispiel wäre ein FacebookHttpClient Beispiel, das zusätzliche Methoden bereitstellt, die für einen Facebook-Webdienst spezifisch sind (z. B. eine GetFriends Methode). Abgeleitete Klassen sollten die virtuellen Methoden für die Klasse nicht außer Kraft setzen. Verwenden Sie stattdessen eine Konstruktorüberladung, die HttpMessageHandler akzeptiert, um jegliche Voranforderungs- oder Nachanforderungsverarbeitung zu konfigurieren.

Transports

Dies HttpClient ist eine allgemeine API, die die funktionalität der unteren Ebene umschließt, die auf jeder Plattform verfügbar ist, auf der sie ausgeführt wird.

Auf jeder Plattform versucht, HttpClient den besten verfügbaren Transport zu verwenden:

Host/Runtime Backend
Windows/.NET Framework HttpWebRequest
Windows/Mono HttpWebRequest
Windows/UWP Windows native WinHttpHandler (HTTP 2.0-fähig)
Windows/.NET Core 1.0-2.0 Windows native WinHttpHandler (HTTP 2.0-fähig)
macOS/Mono HttpWebRequest
macOS/.NET Core 1.0-2.0 libcurl-basierter HTTP-Transport (HTTP 2.0-fähig)
Linux/Mono HttpWebRequest
Linux/.NET Core 1.0-2.0 libcurl-basierter HTTP-Transport (HTTP 2.0-fähig)
.NET Core 2.1 und höher System.Net.Http.SocketsHttpHandler

Benutzer können auch einen bestimmten Transport für HttpClient konfigurieren, indem sie den HttpClient-Konstruktor aufrufen, der einen HttpMessageHandler entgegennimmt.

.NET Framework & Mono

Standardmäßig wird bei .NET Framework und Mono HttpWebRequest verwendet, um Anforderungen an den Server zu senden. Dieses Verhalten kann geändert werden, indem ein anderer Handler in einer der Konstruktorüberladungen mit einem HttpMessageHandler Parameter angegeben wird. Wenn Sie Features wie Authentifizierung oder Zwischenspeicherung benötigen, können Sie mit WebRequestHandler die Einstellungen konfigurieren, und die Instanz kann dann an den Konstruktor übergeben werden. Der zurückgegebene Handler kann an eine Konstruktorüberladung übergeben werden, die über einen HttpMessageHandler Parameter verfügt.

.NET Kern

Ab .NET Core 2.1 stellt die System.Net.Http.SocketsHttpHandler-Klasse anstelle von HttpClientHandler die Implementierung bereit, die von Netzwerkklassen auf höherer Ebene wie HttpClient-HTTP-Klassen verwendet wird. Die Verwendung von SocketsHttpHandler bietet eine Reihe von Vorteilen:

  • Eine beträchtliche Leistungssteigerung im Vergleich zur früheren Implementierung.
  • Die Beseitigung von Plattformabhängigkeiten, die die Bereitstellung und Wartung vereinfacht. Beispielsweise ist libcurl nicht mehr von .NET Core für macOS und .NET Core für Linux abhängig.
  • Einheitliches Verhalten auf allen .NET-Plattformen.

Wenn diese Änderung nicht erwünscht ist, können Sie unter Windows WinHttpHandler weiterhin verwenden, indem Sie das NuGet-Paket referenzieren und es manuell an den Konstruktor von HttpClient übergeben.

Konfigurieren des Verhaltens mithilfe von Laufzeitkonfigurationsoptionen

Bestimmte Aspekte des Verhaltens von HttpClient's Verhalten können über Laufzeitkonfigurationsoptionen angepasst werden. Das Verhalten dieser Switches unterscheidet sich jedoch zwischen verschiedenen .NET-Versionen. In .NET Core 2.1 - 3.1 können Sie z. B. konfigurieren, ob SocketsHttpHandler standardmäßig verwendet wird, diese Option ist jedoch ab .NET 5 nicht mehr verfügbar.

Verbindungspooling

HttpClient pools HTTP-Verbindungen, sofern möglich und verwendet sie für mehr als eine Anforderung. Dies kann einen erheblichen Leistungsvorteil haben, insbesondere für HTTPS-Anforderungen, da der Verbindungs-Handshake nur einmal ausgeführt wird.

Die Eigenschaften des Pools für Verbindungen können über ein HttpClientHandler oder SocketsHttpHandler konfiguriert werden, das während der Konstruktion übergeben wird, einschließlich MaxConnectionsPerServer, PooledConnectionIdleTimeout und PooledConnectionLifetime.

Durch das Löschen der HttpClient Instanz werden die geöffneten Verbindungen geschlossen und alle ausstehenden Anforderungen abgebrochen.

Note

Wenn Sie gleichzeitig HTTP/1.1-Anforderungen an denselben Server senden, können neue Verbindungen erstellt werden. Auch wenn Sie die HttpClient Instanz wiederverwenden, wenn die Anzahl der Anforderungen hoch ist oder Firewalleinschränkungen bestehen, kann dies die verfügbaren Sockets aufgrund der standardmäßigen TCP-Bereinigungszeitgeber ausschöpfen. Um die Anzahl der gleichzeitigen Verbindungen zu begrenzen, können Sie die MaxConnectionsPerServer Eigenschaft festlegen. Standardmäßig ist die Anzahl gleichzeitiger HTTP/1.1-Verbindungen unbegrenzt.

Pufferung und Lebensdauer von Anfragen

Standardmäßig puffern HttpClient-Methoden (mit Ausnahme von GetStreamAsync) die Antworten vom Server, wobei der gesamte Antwortkörper in den Arbeitsspeicher eingelesen wird, bevor das asynchrone Ergebnis zurückgegeben wird. Diese Anfragen werden fortgesetzt, bis eine der folgenden Bedingungen eintritt:

Sie können das Pufferverhalten für jede Anfrage mithilfe des HttpCompletionOption-Parameters ändern, der bei einigen Methodenüberladungen verfügbar ist. Dieses Argument kann verwendet werden, um anzugeben, ob das Task<TResult> Argument nach dem Lesen nur der Antwortheader oder nach dem Lesen und Puffern des Antwortinhalts als vollständig betrachtet werden soll.

Wenn Ihre App, die HttpClient und verwandte Klassen im System.Net.Http Namespace verwendet, große Datenmengen (50 Megabyte oder mehr) herunterladen möchte, sollte die App diese Downloads streamen und nicht die Standardpufferung verwenden. Wenn Sie die Standardpufferung verwenden, wird die Clientspeicherauslastung sehr groß, was zu erheblich reduzierter Leistung führt.

Threadsicherheit

Die folgenden Methoden sind threadsicher:

Proxies

Standardmäßig liest HttpClient die Proxykonfiguration aus den Umgebungsvariablen oder den Benutzer-/Systemeinstellungen, abhängig von der Plattform. Sie können dieses Verhalten ändern, indem Sie ein WebProxy oder IWebProxy in der Reihenfolge der Priorität an übergeben:

  • Die Proxy Eigenschaft bei der Übergabe eines HttpClientHandler während der HttpClient Konstruktion
  • Die DefaultProxy statische Eigenschaft (wirkt sich auf alle Instanzen aus)

Sie können den Proxy mithilfe von UseProxy deaktivieren. Die Standardkonfiguration für Windows-Benutzer besteht darin, einen Proxy mithilfe der Netzwerkermittlung zu testen und zu erkennen, was langsam sein kann. Für Anwendungen mit hohem Durchsatz, bei denen bekannt ist, dass kein Proxy erforderlich ist, sollten Sie den Proxy deaktivieren.

Proxyeinstellungen (wie Credentials) sollten nur geändert werden, bevor die erste Anfrage mit HttpClient erfolgt. Änderungen, die nach der erstmaligen Verwendung von HttpClient vorgenommen wurden, werden möglicherweise nicht in nachfolgenden Anfragen wiedergegeben.

Timeouts

Sie können Timeout verwenden, um ein Standardtimeout für alle HTTP-Anfragen der HttpClient Instanz festzulegen. Das Timeout gilt nur für die xxxAsync-Methoden, die dazu führen, dass eine Anforderung/Antwort initiiert wird. Wenn das Timeout erreicht ist, wird die Task<TResult> für diese Anfrage abgebrochen.

Sie können einige zusätzliche Timeouts festlegen, wenn Sie beim Erstellen des SocketsHttpHandler Objekts eine HttpClient Instanz übergeben:

Property Description
ConnectTimeout Gibt ein Timeout an, das verwendet wird, wenn eine Anforderung eine neue TCP-Verbindung erfordert. Wenn das Timeout eintritt, wird die Anfrage Task<TResult> abgebrochen.
PooledConnectionLifetime Gibt ein Timeout an, das für jede Verbindung im Verbindungspool verwendet werden soll. Wenn die Verbindung leer ist, wird die Verbindung sofort geschlossen; andernfalls wird die Verbindung am Ende der aktuellen Anforderung geschlossen.
PooledConnectionIdleTimeout Wenn eine Verbindung im Verbindungspool für diese Dauer inaktiv ist, wird die Verbindung geschlossen.
Expect100ContinueTimeout Wenn die Anforderung über einen Header "Erwartet: 100-continue" verfügt, verzögert sich das Senden von Inhalten bis zum Timeout oder bis eine Antwort "100-continue" empfangen wird.

HttpClient löst nur DNS-Einträge auf, wenn die Verbindungen erstellt werden. Die vom DNS-Server angegebene Gültigkeitsdauer (Time To Live, TTL) wird nicht nachverfolgt. Wenn sich DNS-Einträge regelmäßig ändern, was in einigen Container-Szenarien vorkommen kann, können Sie die PooledConnectionLifetime verwenden, um die Lebensdauer der Verbindung zu begrenzen, so dass beim Ersetzen der Verbindung ein DNS-Lookup erforderlich ist.

Konstruktoren

Name Beschreibung
HttpClient()

Initialisiert eine neue Instanz der HttpClient Klasse unter Verwendung eines HttpClientHandler Verworfens, wenn diese Instanz verworfen wird.

HttpClient(HttpMessageHandler, Boolean)

Initialisiert eine neue Instanz der HttpClient Klasse mit dem bereitgestellten Handler und gibt an, ob dieser Handler verworfen werden soll, wenn diese Instanz verworfen wird.

HttpClient(HttpMessageHandler)

Initialisiert eine neue Instanz der HttpClient Klasse mit dem angegebenen Handler. Der Handler wird verworfen, wenn diese Instanz verworfen wird.

Eigenschaften

Name Beschreibung
BaseAddress

Dient zum Abrufen oder Festlegen der Basisadresse des URI (Uniform Resource Identifier) der Internetressource, die beim Senden von Anforderungen verwendet wird.

DefaultProxy

Dient zum Abrufen oder Festlegen des globalen HTTP-Proxys.

DefaultRequestHeaders

Ruft die Header ab, die mit jeder Anforderung gesendet werden sollen.

DefaultRequestVersion

Ruft die standardmäßige HTTP-Version ab, die für nachfolgende Anforderungen von dieser HttpClient Instanz verwendet wird, oder legt diese fest.

DefaultVersionPolicy

Dient zum Abrufen oder Festlegen der Standardversionsrichtlinie für implizit erstellte Anforderungen in Komfortmethoden, z. B GetAsync(String) . und PostAsync(String, HttpContent).

MaxResponseContentBufferSize

Ruft die maximale Anzahl von Bytes ab, die beim Lesen des Antwortinhalts gepuffert werden sollen, oder legt diese fest.

Timeout

Ruft den Zeitbereich ab, der gewartet werden soll, bevor die Anforderung ausgeht, oder legt diesen fest.

Methoden

Name Beschreibung
CancelPendingRequests()

Alle ausstehenden Anforderungen für diese Instanz abbrechen.

DeleteAsync(String, CancellationToken)

Senden Sie eine DELETE-Anforderung an den angegebenen URI mit einem Abbruchtoken als asynchronen Vorgang.

DeleteAsync(String)

Senden Sie eine DELETE-Anforderung als asynchronen Vorgang an den angegebenen URI.

DeleteAsync(Uri, CancellationToken)

Senden Sie eine DELETE-Anforderung an den angegebenen URI mit einem Abbruchtoken als asynchronen Vorgang.

DeleteAsync(Uri)

Senden Sie eine DELETE-Anforderung als asynchronen Vorgang an den angegebenen URI.

Dispose()

Gibt die nicht verwalteten Ressourcen frei und entsorgt die verwalteten Ressourcen, die von der HttpMessageInvoker.

(Geerbt von HttpMessageInvoker)
Dispose(Boolean)

Gibt die nicht verwalteten Ressourcen frei, die von den HttpClient verwalteten Ressourcen verwendet werden, und entfernt optional die verwalteten Ressourcen.

Equals(Object)

Bestimmt, ob das angegebene Objekt dem aktuellen Objekt entspricht.

(Geerbt von Object)
GetAsync(String, CancellationToken)

Senden Sie eine GET-Anforderung an den angegebenen URI mit einem Abbruchtoken als asynchronen Vorgang.

GetAsync(String, HttpCompletionOption, CancellationToken)

Senden Sie eine GET-Anforderung an den angegebenen URI mit einer HTTP-Abschlussoption und einem Abbruchtoken als asynchronen Vorgang.

GetAsync(String, HttpCompletionOption)

Senden Sie eine GET-Anforderung an den angegebenen URI mit einer HTTP-Abschlussoption als asynchronen Vorgang.

GetAsync(String)

Senden Sie eine GET-Anforderung als asynchronen Vorgang an den angegebenen URI.

GetAsync(Uri, CancellationToken)

Senden Sie eine GET-Anforderung an den angegebenen URI mit einem Abbruchtoken als asynchronen Vorgang.

GetAsync(Uri, HttpCompletionOption, CancellationToken)

Senden Sie eine GET-Anforderung an den angegebenen URI mit einer HTTP-Abschlussoption und einem Abbruchtoken als asynchronen Vorgang.

GetAsync(Uri, HttpCompletionOption)

Senden Sie eine GET-Anforderung an den angegebenen URI mit einer HTTP-Abschlussoption als asynchronen Vorgang.

GetAsync(Uri)

Senden Sie eine GET-Anforderung als asynchronen Vorgang an den angegebenen URI.

GetByteArrayAsync(String, CancellationToken)

Sendet eine GET-Anforderung an den angegebenen URI und gibt den Antworttext als Bytearray in einem asynchronen Vorgang zurück.

GetByteArrayAsync(String)

Sendet eine GET-Anforderung an den angegebenen URI und gibt den Antworttext als Bytearray in einem asynchronen Vorgang zurück.

GetByteArrayAsync(Uri, CancellationToken)

Senden Sie eine GET-Anforderung an den angegebenen URI, und geben Sie den Antworttext als Bytearray in einem asynchronen Vorgang zurück.

GetByteArrayAsync(Uri)

Senden Sie eine GET-Anforderung an den angegebenen URI, und geben Sie den Antworttext als Bytearray in einem asynchronen Vorgang zurück.

GetHashCode()

Dient als Standardhashfunktion.

(Geerbt von Object)
GetStreamAsync(String, CancellationToken)

Senden Sie eine GET-Anforderung an den angegebenen URI, und geben Sie den Antworttext als Datenstrom in einem asynchronen Vorgang zurück.

GetStreamAsync(String)

Senden Sie eine GET-Anforderung an den angegebenen URI, und geben Sie den Antworttext als Datenstrom in einem asynchronen Vorgang zurück.

GetStreamAsync(Uri, CancellationToken)

Senden Sie eine GET-Anforderung an den angegebenen URI, und geben Sie den Antworttext als Datenstrom in einem asynchronen Vorgang zurück.

GetStreamAsync(Uri)

Senden Sie eine GET-Anforderung an den angegebenen URI, und geben Sie den Antworttext als Datenstrom in einem asynchronen Vorgang zurück.

GetStringAsync(String, CancellationToken)

Senden Sie eine GET-Anforderung an den angegebenen URI, und geben Sie den Antworttext als Zeichenfolge in einem asynchronen Vorgang zurück.

GetStringAsync(String)

Senden Sie eine GET-Anforderung an den angegebenen URI, und geben Sie den Antworttext als Zeichenfolge in einem asynchronen Vorgang zurück.

GetStringAsync(Uri, CancellationToken)

Senden Sie eine GET-Anforderung an den angegebenen URI, und geben Sie den Antworttext als Zeichenfolge in einem asynchronen Vorgang zurück.

GetStringAsync(Uri)

Senden Sie eine GET-Anforderung an den angegebenen URI, und geben Sie den Antworttext als Zeichenfolge in einem asynchronen Vorgang zurück.

GetType()

Ruft die Type der aktuellen Instanz ab.

(Geerbt von Object)
MemberwiseClone()

Erstellt eine flache Kopie der aktuellen Object.

(Geerbt von Object)
PatchAsync(String, HttpContent, CancellationToken)

Sendet eine PATCH-Anforderung mit einem Abbruchtoken an einen URI, der als Zeichenfolge als asynchroner Vorgang dargestellt wird.

PatchAsync(String, HttpContent)

Sendet eine PATCH-Anforderung an einen URI, der als Zeichenfolge als asynchroner Vorgang festgelegt ist.

PatchAsync(Uri, HttpContent, CancellationToken)

Sendet eine PATCH-Anforderung mit einem Abbruchtoken als asynchronen Vorgang.

PatchAsync(Uri, HttpContent)

Sendet eine PATCH-Anforderung als asynchronen Vorgang.

PostAsync(String, HttpContent, CancellationToken)

Senden Sie eine POST-Anforderung mit einem Abbruchtoken als asynchronen Vorgang.

PostAsync(String, HttpContent)

Senden Sie eine POST-Anforderung als asynchronen Vorgang an den angegebenen URI.

PostAsync(Uri, HttpContent, CancellationToken)

Senden Sie eine POST-Anforderung mit einem Abbruchtoken als asynchronen Vorgang.

PostAsync(Uri, HttpContent)

Senden Sie eine POST-Anforderung als asynchronen Vorgang an den angegebenen URI.

PutAsync(String, HttpContent, CancellationToken)

Senden Sie eine PUT-Anforderung mit einem Abbruchtoken als asynchronen Vorgang.

PutAsync(String, HttpContent)

Senden Sie eine PUT-Anforderung als asynchronen Vorgang an den angegebenen URI.

PutAsync(Uri, HttpContent, CancellationToken)

Senden Sie eine PUT-Anforderung mit einem Abbruchtoken als asynchronen Vorgang.

PutAsync(Uri, HttpContent)

Senden Sie eine PUT-Anforderung als asynchronen Vorgang an den angegebenen URI.

Send(HttpRequestMessage, CancellationToken)

Sendet eine HTTP-Anforderung mit dem angegebenen Anforderungs- und Abbruchtoken.

Send(HttpRequestMessage, HttpCompletionOption, CancellationToken)

Sendet eine HTTP-Anforderung mit dem angegebenen Anforderungs-, Abschluss- und Abbruchtoken.

Send(HttpRequestMessage, HttpCompletionOption)

Sendet eine HTTP-Anforderung.

Send(HttpRequestMessage)

Sendet eine HTTP-Anforderung mit der angegebenen Anforderung.

SendAsync(HttpRequestMessage, CancellationToken)

Senden Sie eine HTTP-Anforderung als asynchronen Vorgang.

SendAsync(HttpRequestMessage, HttpCompletionOption, CancellationToken)

Senden Sie eine HTTP-Anforderung als asynchronen Vorgang.

SendAsync(HttpRequestMessage, HttpCompletionOption)

Senden Sie eine HTTP-Anforderung als asynchronen Vorgang.

SendAsync(HttpRequestMessage)

Senden Sie eine HTTP-Anforderung als asynchronen Vorgang.

ToString()

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

(Geerbt von Object)

Erweiterungsmethoden

Name Beschreibung
DeleteFromJsonAsync(HttpClient, String, Type, CancellationToken)

Sendet eine DELETE-Anforderung an den angegebenen URI und gibt den Wert zurück, der aus der Deserialisierung des Antworttexts als JSON in einem asynchronen Vorgang resultiert.

DeleteFromJsonAsync(HttpClient, String, Type, JsonSerializerContext, CancellationToken)

Sendet eine DELETE-Anforderung an den angegebenen URI und gibt den Wert zurück, der aus der Deserialisierung des Antworttexts als JSON in einem asynchronen Vorgang resultiert.

DeleteFromJsonAsync(HttpClient, String, Type, JsonSerializerOptions, CancellationToken)

Sendet eine DELETE-Anforderung an den angegebenen URI und gibt den Wert zurück, der aus der Deserialisierung des Antworttexts als JSON in einem asynchronen Vorgang resultiert.

DeleteFromJsonAsync(HttpClient, Uri, Type, CancellationToken)

Sendet eine DELETE-Anforderung an den angegebenen URI und gibt den Wert zurück, der aus der Deserialisierung des Antworttexts als JSON in einem asynchronen Vorgang resultiert.

DeleteFromJsonAsync(HttpClient, Uri, Type, JsonSerializerContext, CancellationToken)

Sendet eine DELETE-Anforderung an den angegebenen URI und gibt den Wert zurück, der aus der Deserialisierung des Antworttexts als JSON in einem asynchronen Vorgang resultiert.

DeleteFromJsonAsync(HttpClient, Uri, Type, JsonSerializerOptions, CancellationToken)

Sendet eine DELETE-Anforderung an den angegebenen URI und gibt den Wert zurück, der aus der Deserialisierung des Antworttexts als JSON in einem asynchronen Vorgang resultiert.

DeleteFromJsonAsync<TValue>(HttpClient, String, CancellationToken)

Sendet eine DELETE-Anforderung an den angegebenen URI und gibt den Wert zurück, der aus der Deserialisierung des Antworttexts als JSON in einem asynchronen Vorgang resultiert.

DeleteFromJsonAsync<TValue>(HttpClient, String, JsonSerializerOptions, CancellationToken)

Sendet eine DELETE-Anforderung an den angegebenen URI und gibt den Wert zurück, der aus der Deserialisierung des Antworttexts als JSON in einem asynchronen Vorgang resultiert.

DeleteFromJsonAsync<TValue>(HttpClient, String, JsonTypeInfo<TValue>, CancellationToken)

Sendet eine DELETE-Anforderung an den angegebenen URI und gibt den Wert zurück, der aus der Deserialisierung des Antworttexts als JSON in einem asynchronen Vorgang resultiert.

DeleteFromJsonAsync<TValue>(HttpClient, Uri, CancellationToken)

Sendet eine DELETE-Anforderung an den angegebenen URI und gibt den Wert zurück, der aus der Deserialisierung des Antworttexts als JSON in einem asynchronen Vorgang resultiert.

DeleteFromJsonAsync<TValue>(HttpClient, Uri, JsonSerializerOptions, CancellationToken)

Sendet eine DELETE-Anforderung an den angegebenen URI und gibt den Wert zurück, der aus der Deserialisierung des Antworttexts als JSON in einem asynchronen Vorgang resultiert.

DeleteFromJsonAsync<TValue>(HttpClient, Uri, JsonTypeInfo<TValue>, CancellationToken)

Sendet eine DELETE-Anforderung an den angegebenen URI und gibt den Wert zurück, der aus der Deserialisierung des Antworttexts als JSON in einem asynchronen Vorgang resultiert.

GetFromJsonAsAsyncEnumerable<TValue>(HttpClient, String, CancellationToken)

Sendet eine HTTP GETAnforderung an den angegebenen requestUri Und gibt den Wert zurück, der aus der Deserialisierung des Antworttexts als JSON in einem asynchronen Aufzählungsvorgang resultiert.

GetFromJsonAsAsyncEnumerable<TValue>(HttpClient, String, JsonSerializerOptions, CancellationToken)

Sendet eine HTTP GET Anforderung an den angegebenen requestUri Und gibt den Wert zurück, der aus der Deserialisierung des Antworttexts als JSON in einem asynchronen Aufzählungsvorgang resultiert.

GetFromJsonAsAsyncEnumerable<TValue>(HttpClient, String, JsonTypeInfo<TValue>, CancellationToken)

Sendet eine HTTP GETAnforderung an den angegebenen requestUri Und gibt den Wert zurück, der aus der Deserialisierung des Antworttexts als JSON in einem asynchronen Aufzählungsvorgang resultiert.

GetFromJsonAsAsyncEnumerable<TValue>(HttpClient, Uri, CancellationToken)

Sendet eine HTTP GETAnforderung an den angegebenen requestUri Und gibt den Wert zurück, der aus der Deserialisierung des Antworttexts als JSON in einem asynchronen Aufzählungsvorgang resultiert.

GetFromJsonAsAsyncEnumerable<TValue>(HttpClient, Uri, JsonSerializerOptions, CancellationToken)

Sendet eine HTTP GETAnforderung an den angegebenen requestUri Und gibt den Wert zurück, der aus der Deserialisierung des Antworttexts als JSON in einem asynchronen Aufzählungsvorgang resultiert.

GetFromJsonAsAsyncEnumerable<TValue>(HttpClient, Uri, JsonTypeInfo<TValue>, CancellationToken)

Sendet eine HTTP GETAnforderung an den angegebenen requestUri Und gibt den Wert zurück, der aus der Deserialisierung des Antworttexts als JSON in einem asynchronen Aufzählungsvorgang resultiert.

GetFromJsonAsync(HttpClient, String, Type, CancellationToken)

Sendet eine GET-Anforderung an den angegebenen URI und gibt den Wert zurück, der aus der Deserialisierung des Antworttexts als JSON in einem asynchronen Vorgang resultiert.

GetFromJsonAsync(HttpClient, String, Type, JsonSerializerContext, CancellationToken)

Sendet eine GET-Anforderung an den angegebenen URI und gibt den Wert zurück, der aus der Deserialisierung des Antworttexts als JSON in einem asynchronen Vorgang resultiert.

GetFromJsonAsync(HttpClient, String, Type, JsonSerializerOptions, CancellationToken)

Sendet eine GET-Anforderung an den angegebenen URI und gibt den Wert zurück, der aus der Deserialisierung des Antworttexts als JSON in einem asynchronen Vorgang resultiert.

GetFromJsonAsync(HttpClient, Uri, Type, CancellationToken)

Sendet eine GET-Anforderung an den angegebenen URI und gibt den Wert zurück, der aus der Deserialisierung des Antworttexts als JSON in einem asynchronen Vorgang resultiert.

GetFromJsonAsync(HttpClient, Uri, Type, JsonSerializerContext, CancellationToken)

Sendet eine GET-Anforderung an den angegebenen URI und gibt den Wert zurück, der aus der Deserialisierung des Antworttexts als JSON in einem asynchronen Vorgang resultiert.

GetFromJsonAsync(HttpClient, Uri, Type, JsonSerializerOptions, CancellationToken)

Sendet eine GET-Anforderung an den angegebenen URI und gibt den Wert zurück, der aus der Deserialisierung des Antworttexts als JSON in einem asynchronen Vorgang resultiert.

GetFromJsonAsync<TValue>(HttpClient, String, CancellationToken)

Sendet eine GET-Anforderung an den angegebenen URI und gibt den Wert zurück, der aus der Deserialisierung des Antworttexts als JSON in einem asynchronen Vorgang resultiert.

GetFromJsonAsync<TValue>(HttpClient, String, JsonSerializerOptions, CancellationToken)

Sendet eine GET-Anforderung an den angegebenen URI und gibt den Wert zurück, der aus der Deserialisierung des Antworttexts als JSON in einem asynchronen Vorgang resultiert.

GetFromJsonAsync<TValue>(HttpClient, String, JsonTypeInfo<TValue>, CancellationToken)

Sendet eine GET-Anforderung an den angegebenen URI und gibt den Wert zurück, der aus der Deserialisierung des Antworttexts als JSON in einem asynchronen Vorgang resultiert.

GetFromJsonAsync<TValue>(HttpClient, Uri, CancellationToken)

Sendet eine GET-Anforderung an den angegebenen URI und gibt den Wert zurück, der aus der Deserialisierung des Antworttexts als JSON in einem asynchronen Vorgang resultiert.

GetFromJsonAsync<TValue>(HttpClient, Uri, JsonSerializerOptions, CancellationToken)

Sendet eine GET-Anforderung an den angegebenen URI und gibt den Wert zurück, der aus der Deserialisierung des Antworttexts als JSON in einem asynchronen Vorgang resultiert.

GetFromJsonAsync<TValue>(HttpClient, Uri, JsonTypeInfo<TValue>, CancellationToken)

Sendet eine GET-Anforderung an den angegebenen URI und gibt den Wert zurück, der aus der Deserialisierung des Antworttexts als JSON in einem asynchronen Vorgang resultiert.

PatchAsJsonAsync<TValue>(HttpClient, String, TValue, CancellationToken)

Sendet eine PATCH-Anforderung an den angegebenen URI, der den value serialisierten JSON-Code im Anforderungstext enthält.

PatchAsJsonAsync<TValue>(HttpClient, String, TValue, JsonSerializerOptions, CancellationToken)

Sendet eine PATCH-Anforderung an den angegebenen URI, der den value serialisierten JSON-Code im Anforderungstext enthält.

PatchAsJsonAsync<TValue>(HttpClient, String, TValue, JsonTypeInfo<TValue>, CancellationToken)

Sendet eine PATCH-Anforderung an den angegebenen URI, der den value serialisierten JSON-Code im Anforderungstext enthält.

PatchAsJsonAsync<TValue>(HttpClient, Uri, TValue, CancellationToken)

Sendet eine PATCH-Anforderung an den angegebenen URI, der den value serialisierten JSON-Code im Anforderungstext enthält.

PatchAsJsonAsync<TValue>(HttpClient, Uri, TValue, JsonSerializerOptions, CancellationToken)

Sendet eine PATCH-Anforderung an den angegebenen URI, der den value serialisierten JSON-Code im Anforderungstext enthält.

PatchAsJsonAsync<TValue>(HttpClient, Uri, TValue, JsonTypeInfo<TValue>, CancellationToken)

Sendet eine PATCH-Anforderung an den angegebenen URI, der den value serialisierten JSON-Code im Anforderungstext enthält.

PostAsJsonAsync<TValue>(HttpClient, String, TValue, CancellationToken)

Sendet eine POST-Anforderung an den angegebenen URI, der den value serialisierten ALS JSON im Anforderungstext enthält.

PostAsJsonAsync<TValue>(HttpClient, String, TValue, JsonSerializerOptions, CancellationToken)

Sendet eine POST-Anforderung an den angegebenen URI, der den value serialisierten ALS JSON im Anforderungstext enthält.

PostAsJsonAsync<TValue>(HttpClient, String, TValue, JsonTypeInfo<TValue>, CancellationToken)

Sendet eine POST-Anforderung an den angegebenen URI, der den value serialisierten ALS JSON im Anforderungstext enthält.

PostAsJsonAsync<TValue>(HttpClient, Uri, TValue, CancellationToken)

Sendet eine POST-Anforderung an den angegebenen URI, der den value serialisierten ALS JSON im Anforderungstext enthält.

PostAsJsonAsync<TValue>(HttpClient, Uri, TValue, JsonSerializerOptions, CancellationToken)

Sendet eine POST-Anforderung an den angegebenen URI, der den value serialisierten ALS JSON im Anforderungstext enthält.

PostAsJsonAsync<TValue>(HttpClient, Uri, TValue, JsonTypeInfo<TValue>, CancellationToken)

Sendet eine POST-Anforderung an den angegebenen URI, der den value serialisierten ALS JSON im Anforderungstext enthält.

PutAsJsonAsync<TValue>(HttpClient, String, TValue, CancellationToken)

Senden Sie eine PUT-Anforderung an den angegebenen URI, der den value serialisierten JSON-Code im Anforderungstext enthält.

PutAsJsonAsync<TValue>(HttpClient, String, TValue, JsonSerializerOptions, CancellationToken)

Senden Sie eine PUT-Anforderung an den angegebenen URI, der den value serialisierten JSON-Code im Anforderungstext enthält.

PutAsJsonAsync<TValue>(HttpClient, String, TValue, JsonTypeInfo<TValue>, CancellationToken)

Senden Sie eine PUT-Anforderung an den angegebenen URI, der den value serialisierten JSON-Code im Anforderungstext enthält.

PutAsJsonAsync<TValue>(HttpClient, Uri, TValue, CancellationToken)

Senden Sie eine PUT-Anforderung an den angegebenen URI, der den value serialisierten JSON-Code im Anforderungstext enthält.

PutAsJsonAsync<TValue>(HttpClient, Uri, TValue, JsonSerializerOptions, CancellationToken)

Senden Sie eine PUT-Anforderung an den angegebenen URI, der den value serialisierten JSON-Code im Anforderungstext enthält.

PutAsJsonAsync<TValue>(HttpClient, Uri, TValue, JsonTypeInfo<TValue>, CancellationToken)

Senden Sie eine PUT-Anforderung an den angegebenen URI, der den value serialisierten JSON-Code im Anforderungstext enthält.

Gilt für:

Weitere Informationen