HttpClient Klasse
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Stellt eine Klasse zum Senden von HTTP-Anforderungen und zum 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
Im vorherigen Codebeispiel wird ein async Task Main()
Einstiegspunkt verwendet. Für dieses Feature ist C# 7.1 oder höher erforderlich.
Hinweise
Die HttpClient Klasse instance fungiert als Sitzung zum Senden von HTTP-Anforderungen. Ein HttpClient instance ist eine Sammlung von Einstellungen, die auf alle Anforderungen angewendet werden, die von diesem instance ausgeführt werden. Darüber hinaus verwendet jede HttpClient instance einen eigenen Verbindungspool, der seine Anforderungen von Anforderungen isoliert, die von anderen HttpClient Instanzen ausgeführt werden.
Instanziierung
HttpClient soll einmal instanziiert und während der gesamten Lebensdauer einer Anwendung wiederverwendet werden. In .NET Core und .NET 5 und höher poolt HttpClient Verbindungen innerhalb des Handlers instance und verwendet eine Verbindung für mehrere Anforderungen wieder. Wenn Sie eine HttpClient-Klasse für jede Anforderung instanziieren, ist die Anzahl der Unterlasten verfügbaren Sockets erschöpft. Diese Erschöpfung führt zu SocketException Fehlern.
Sie können zusätzliche Optionen konfigurieren, indem Sie einen "Handler" wie HttpClientHandler (oder SocketsHttpHandler in .NET Core 2.1 oder höher) als Teil des Konstruktors übergeben. Die Verbindungseigenschaften für den Handler können nicht geändert werden, nachdem eine Anforderung übermittelt wurde. Ein Grund zum Erstellen eines neuen HttpClient-instance 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 über mehrere HttpClient Instanzen verfügt, wobei jede instance entsprechend konfiguriert ist und dann Anforderungen auf dem relevanten Client ausgegeben 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 vorkommen kann, berücksichtigt der Client diese Updates nicht. Um dieses Problem zu beheben, können Sie die Gültigkeitsdauer 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);
}
}
Alternativ zum Erstellen von nur einem HttpClient-instance können Sie auch verwendenIHttpClientFactory, um die HttpClient-Instanzen für Sie zu verwalten. Weitere Informationen finden Sie unter Richtlinien für die Verwendung von HttpClient.
Ableitung
Fungiert HttpClient auch als Basisklasse für spezifischere HTTP-Clients. Ein Beispiel wäre ein FacebookHttpClient, der 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 akzeptiert, HttpMessageHandler um die Verarbeitung vor oder nach der Anforderung zu konfigurieren.
Transportprotokolle
ist HttpClient eine allgemeine API, die die funktionen der unteren Ebene umschließt, die auf jeder Plattform verfügbar ist, auf der sie ausgeführt wird.
Versucht auf jeder Plattform, HttpClient den besten verfügbaren Transport zu verwenden:
Host/Runtime | Back-End |
---|---|
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) |
Android/Xamarin | Zur Buildzeit ausgewählt. Kann entweder verwenden HttpWebRequest oder konfiguriert werden, um die native Android-Version zu verwenden. HttpURLConnection |
iOS, tvOS, watchOS/Xamarin | Zur Buildzeit ausgewählt. Kann entweder für die Verwendung von NSUrlSession Apple verwenden HttpWebRequest oder konfiguriert werden (HTTP 2.0-fähig) |
macOS/Xamarin | Zur Buildzeit ausgewählt. Kann entweder für die Verwendung von NSUrlSession Apple verwenden HttpWebRequest oder konfiguriert werden (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 Konstruktor aufrufen, der HttpClient eine HttpMessageHandlerakzeptiert.
&.NET Framework Mono
Standardmäßig wird .NET Framework und Mono verwendet, HttpWebRequest um Anforderungen an den Server zu senden. Dieses Verhalten kann durch Angabe eines anderen Handlers in einer der Konstruktorüberladungen mit einem HttpMessageHandler Parameter geändert werden. Wenn Sie Features wie Authentifizierung oder Zwischenspeichern benötigen, können Sie mit WebRequestHandler Einstellungen konfigurieren, und die instance kann an den Konstruktor übergeben werden. Der zurückgegebene Handler kann an eine Konstruktorüberladung mit einem HttpMessageHandler Parameter übergeben werden.
.NET Core
Ab .NET Core 2.1 stellt die System.Net.Http.SocketsHttpHandler -Klasse anstelle von HttpClientHandler die Implementierung bereit, die von HTTP-Netzwerkklassen auf höherer Ebene verwendet wird, z HttpClient. B. . Die Verwendung von SocketsHttpHandler bietet eine Reihe von Vorteilen:
- Eine beträchtliche Leistungssteigerung im Vergleich zur früheren Implementierung.
- Die Beseitigung von Plattformabhängigkeiten, was die Bereitstellung und Wartung vereinfacht. Ist beispielsweise
libcurl
keine Abhängigkeit mehr von .NET Core für macOS und .NET Core für Linux mehr. - Konsistentes Verhalten auf allen .NET-Plattformen.
Wenn diese Änderung nicht erwünscht ist, können Sie unter Windows weiterhin verwenden WinHttpHandler , indem Sie auf das NuGet-Paket verweisen und es manuell an den HttpClient-Konstruktor übergeben.
Konfigurieren des Verhaltens mithilfe von Laufzeitkonfigurationsoptionen
Bestimmte Aspekte des Verhaltens von HttpClientkönnen über Laufzeitkonfigurationsoptionen angepasst werden. Das Verhalten dieser Switches unterscheidet sich jedoch in den .NET-Versionen. Beispielsweise können Sie in .NET Core 2.1 bis 3.1 konfigurieren, ob SocketsHttpHandler standardmäßig verwendet wird, aber diese Option ist ab .NET 5.0 nicht mehr verfügbar.
Verbindungspooling
HttpClient bündelt HTTP-Verbindungen nach Möglichkeit und verwendet sie für mehr als eine Anforderung. Dies kann einen erheblichen Leistungsvorteil haben, insbesondere bei HTTPS-Anforderungen, da der Verbindungshandshake nur einmal erfolgt.
Verbindungspooleigenschaften können für einen HttpClientHandler konfiguriert oder SocketsHttpHandler während der Konstruktion übergeben werden, einschließlich MaxConnectionsPerServer, PooledConnectionIdleTimeoutund PooledConnectionLifetime.
Durch das Löschen des HttpClient-instance werden die offenen Verbindungen geschlossen und alle ausstehenden Anforderungen abgebrochen.
Hinweis
Wenn Sie gleichzeitig HTTP/1.1-Anforderungen an denselben Server senden, können neue Verbindungen erstellt werden. Selbst wenn Sie die HttpClient
instance wiederverwenden, die Anforderungsrate hoch ist oder Firewalleinschränkungen bestehen, kann dies die verfügbaren Sockets aufgrund von TCP-Bereinigungstimern überlasten. Um die Anzahl gleichzeitiger Verbindungen zu begrenzen, können Sie die MaxConnectionsPerServer
-Eigenschaft festlegen. Standardmäßig ist die Anzahl gleichzeitiger HTTP/1.1-Verbindungen unbegrenzt.
Pufferung und Anforderungsdauer
Standardmäßig puffern HttpClient-Methoden (außer GetStreamAsync) die Antworten vom Server und lesen den gesamten Antworttext in den Arbeitsspeicher, bevor das asynchrone Ergebnis zurückgegeben wird. Diese Anforderungen werden so lange fortgesetzt, bis eine der folgenden Auftritte auftritt:
- Die Task<TResult> ist erfolgreich und gibt ein Ergebnis zurück.
- Die Timeout wird erreicht, in diesem Fall wird die Task<TResult> abgebrochen.
- Die CancellationToken an einige Methodenüberladungen übergebene wird ausgelöst.
- CancelPendingRequests() wird aufgerufen.
- Der HttpClient wird verworfen.
Sie können das Pufferverhalten auf Anforderungsbasis ändern, indem Sie den Parameter verwenden, der HttpCompletionOption für einige Methodenüberladungen verfügbar ist. Dieses Argument kann verwendet werden, um anzugeben, ob nach Task<TResult> dem Lesen der Antwortheader oder nach dem Lesen und Puffern des Antwortinhalts als abgeschlossen angesehen werden soll.
Wenn Ihre App, die und zugehörige Klassen im System.Net.Http Namespace verwendetHttpClient, große Datenmengen (50 MB oder mehr) herunterladen möchte, sollte die App diese Downloads streamen und nicht die Standardpufferung verwenden. Wenn Sie die Standardpufferung verwenden, wird die Arbeitsspeicherauslastung des Clients sehr groß, was möglicherweise zu einer erheblichen Leistungsminderung führt.
Threadsicherheit
Die folgenden Methoden sind threadsicher:
- CancelPendingRequests
- DeleteAsync
- GetAsync
- GetByteArrayAsync
- GetStreamAsync
- GetStringAsync
- PostAsync
- PutAsync
- SendAsync
Proxys
Standardmäßig liest HttpClient die Proxykonfiguration je nach Plattform aus Umgebungsvariablen oder Benutzer-/Systemeinstellungen. Sie können dieses Verhalten ändern, indem Sie oder WebProxyIWebProxy in der Reihenfolge der Rangfolge an übergeben:
- Die Proxy Eigenschaft für einen HttpClientHandler, der während der HttpClient-Konstruktion übergeben wird
- Die DefaultProxy statische Eigenschaft (betrifft alle Instanzen)
Sie können den Proxy mit UseProxydeaktivieren. Die Standardkonfiguration für Windows-Benutzer besteht darin, einen Proxy mithilfe der Netzwerkermittlung zu erkennen, was langsam sein kann. Bei Anwendungen mit hohem Durchsatz, bei denen bekannt ist, dass kein Proxy erforderlich ist, sollten Sie den Proxy deaktivieren.
Proxyeinstellungen (z. B Credentials. ) sollten nur geändert werden, bevor die erste Anforderung mithilfe des HttpClient erfolgt. Änderungen, die nach der erstmaligen Verwendung des HttpClient vorgenommen wurden, werden möglicherweise nicht in nachfolgenden Anforderungen berücksichtigt.
Zeitlimits
Sie können verwendenTimeout, um ein Standardtimeout für alle HTTP-Anforderungen aus dem HttpClient-instance festzulegen. Das Timeout gilt nur für die xxxAsync-Methoden, die dazu führen, dass eine Anforderung/Antwort initiiert wird. Wenn das Timeout erreicht wird, wird die für diese Task<TResult> Anforderung abgebrochen.
Sie können einige zusätzliche Timeouts festlegen, wenn Sie beim Erstellen des HttpClient-Objekts eine SocketsHttpHandler instance übergeben:
Eigenschaft | Beschreibung |
---|---|
ConnectTimeout | Gibt ein Timeout an, das verwendet wird, wenn für eine Anforderung eine neue TCP-Verbindung erstellt werden muss. Wenn das Timeout auftritt, wird die Anforderung Task<TResult> abgebrochen. |
PooledConnectionLifetime | Gibt ein Timeout an, das für jede Verbindung im Verbindungspool verwendet werden soll. Wenn sich die Verbindung im Leerlauf befindet, wird die Verbindung sofort geschlossen. Andernfalls wird die Verbindung am Ende der aktuellen Anforderung geschlossen. |
PooledConnectionIdleTimeout | Wenn sich eine Verbindung im Verbindungspool so lange im Leerlauf befindet, wird die Verbindung geschlossen. |
Expect100ContinueTimeout | Wenn die Anforderung über den Header "Expect: 100-continue" verfügt, verzögert sie das Senden von Inhalten bis zum Timeout oder bis die Antwort "100-continue" empfangen wird. |
HttpClient löst DNS-Einträge nur 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 Containerszenarien vorkommen kann, können Sie verwenden, PooledConnectionLifetime um die Lebensdauer der Verbindung zu begrenzen, sodass beim Ersetzen der Verbindung EINE DNS-Suche erforderlich ist.
Konstruktoren
HttpClient() |
Initialisiert eine neue Instanz der HttpClient-Klasse mithilfe eines HttpClientHandler-Objekts, das bei Freigabe dieser Instanz freigegeben wird. |
HttpClient(HttpMessageHandler) |
Initialisiert eine neue Instanz der HttpClient-Klasse mit dem angegebenen Handler. Der Handler wird freigegeben, wenn diese Instanz freigegeben wird. |
HttpClient(HttpMessageHandler, Boolean) |
Initialisiert eine neue Instanz der HttpClient-Klasse mit dem bereitgestellten Handler und gibt an, ob dieser Handler freigegeben werden soll, wenn diese Instanz freigegeben wird. |
Eigenschaften
BaseAddress |
Ruft die Basisadresse des URI (Uniform Resource Identifier) der Internetressource ab, die verwendet wird, wenn Anforderungen gesendet werden, oder legt diese fest. |
DefaultProxy |
Ruft den globalen HTTP-Proxy ab oder legt diesen fest. |
DefaultRequestHeaders |
Ruft die Header ab, die mit jeder Anforderung gesendet werden sollen. |
DefaultRequestVersion |
Ruft die HTTP-Standardversion ab, die für nachfolgende Anforderungen dieser HttpClient-Klasse verwendet wird, oder legt diese fest. |
DefaultVersionPolicy |
Ruft die Standardversionsrichtlinie für implizit erstellte Anforderungen in Hilfsmethoden (z. B. GetAsync(String) und PostAsync(String, HttpContent)) ab oder legt sie fest. |
MaxResponseContentBufferSize |
Ruft beim Lesen des Antwortinhalts die maximale Anzahl zwischenzuspeichernder Bytes ab oder legt diese fest. |
Timeout |
Ruft die Zeitspanne ab, nach der das Zeitlimit der Anforderung überschritten ist, oder legt diese fest. |
Methoden
CancelPendingRequests() |
Alle ausstehenden Anforderungen für diese Instanz abbrechen. |
DeleteAsync(String) |
Eine DELETE-Anforderung an den angegebenen URI als asynchronen Vorgang senden. |
DeleteAsync(String, CancellationToken) |
Eine DELETE-Anforderung für den angegebenen URI mit einem Abbruchtoken als asynchronen Vorgang senden. |
DeleteAsync(Uri) |
Eine DELETE-Anforderung an den angegebenen URI als asynchronen Vorgang senden. |
DeleteAsync(Uri, CancellationToken) |
Eine DELETE-Anforderung für den angegebenen URI mit einem Abbruchtoken als asynchronen Vorgang senden. |
Dispose() |
Gibt die vom HttpMessageInvoker verwendeten, nicht verwalteten Ressourcen frei und verwirft die verwalteten Ressourcen. (Geerbt von HttpMessageInvoker) |
Dispose(Boolean) |
Gibt die vom HttpClient verwendeten, nicht verwalteten Ressourcen frei und verwirft optional auch die verwalteten Ressourcen. |
Equals(Object) |
Bestimmt, ob das angegebene Objekt gleich dem aktuellen Objekt ist. (Geerbt von Object) |
GetAsync(String) |
Eine GET-Anforderung an den angegebenen URI als asynchronen Vorgang senden. |
GetAsync(String, CancellationToken) |
Eine GET-Anforderung für den angegebenen URI mit einem Abbruchtoken als asynchronen Vorgang senden. |
GetAsync(String, HttpCompletionOption) |
Eine GET-Anforderung an den angegebenen URI mit einer HTTP-Abschlussoption als asynchronen Vorgang senden. |
GetAsync(String, HttpCompletionOption, CancellationToken) |
Eine GET-Anforderung an den angegebenen URI mit einer HTTP-Abschlussoption und einem Abbruchtoken als asynchronen Vorgang senden. |
GetAsync(Uri) |
Eine GET-Anforderung an den angegebenen URI als asynchronen Vorgang senden. |
GetAsync(Uri, CancellationToken) |
Eine GET-Anforderung für den angegebenen URI mit einem Abbruchtoken als asynchronen Vorgang senden. |
GetAsync(Uri, HttpCompletionOption) |
Eine GET-Anforderung an den angegebenen URI mit einer HTTP-Abschlussoption als asynchronen Vorgang senden. |
GetAsync(Uri, HttpCompletionOption, CancellationToken) |
Eine GET-Anforderung an den angegebenen URI mit einer HTTP-Abschlussoption und einem Abbruchtoken als asynchronen Vorgang senden. |
GetByteArrayAsync(String) |
Sendet eine GET-Anforderung an den angegebenen URI und gibt den Antworttext in einem asynchronen Vorgang als Bytearray zurück. |
GetByteArrayAsync(String, CancellationToken) |
Sendet eine GET-Anforderung an den angegebenen URI und gibt den Antworttext in einem asynchronen Vorgang als Bytearray 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. |
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. |
GetHashCode() |
Fungiert als Standardhashfunktion. (Geerbt von Object) |
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(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(Uri) |
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. |
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(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(Uri) |
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. |
GetType() |
Ruft den Type der aktuellen Instanz ab. (Geerbt von Object) |
MemberwiseClone() |
Erstellt eine flache Kopie des aktuellen Object. (Geerbt von Object) |
PatchAsync(String, HttpContent) |
Sendet eine PATCH-Anforderung an einen Uri, der als eine Zeichenfolge als asynchroner Vorgang festgelegt ist. |
PatchAsync(String, HttpContent, CancellationToken) |
Sendet eine PATCH-Anforderung mit einem Abbruchtoken an einen URI, dargestellt als Zeichenfolge als asynchroner Vorgang. |
PatchAsync(Uri, HttpContent) |
Sendet eine PATCH-Anforderung als asynchronen Vorgang. |
PatchAsync(Uri, HttpContent, CancellationToken) |
Sendet eine PATCH-Anforderung mit einem Abbruchtoken als einen asynchronen Vorgang. |
PostAsync(String, HttpContent) |
Eine POST-Anforderung an den angegebenen URI als asynchronen Vorgang senden. |
PostAsync(String, HttpContent, CancellationToken) |
Eine POST-Anforderung mit einem Abbruchtoken als asynchronen Vorgang senden. |
PostAsync(Uri, HttpContent) |
Eine POST-Anforderung an den angegebenen URI als asynchronen Vorgang senden. |
PostAsync(Uri, HttpContent, CancellationToken) |
Eine POST-Anforderung mit einem Abbruchtoken als asynchronen Vorgang senden. |
PutAsync(String, HttpContent) |
Eine PUT-Anforderung an den angegebenen URI als asynchronen Vorgang senden. |
PutAsync(String, HttpContent, CancellationToken) |
Eine PUT-Anforderung mit einem Abbruchtoken als asynchronen Vorgang senden. |
PutAsync(Uri, HttpContent) |
Eine PUT-Anforderung an den angegebenen URI als asynchronen Vorgang senden. |
PutAsync(Uri, HttpContent, CancellationToken) |
Eine PUT-Anforderung mit einem Abbruchtoken als asynchronen Vorgang senden. |
Send(HttpRequestMessage) |
Sendet eine HTTP-Anforderung mit der angegebenen Anforderung. |
Send(HttpRequestMessage, CancellationToken) |
Sendet eine HTTP-Anforderung mit der angegebenen Anforderung und einem Abbruchtoken. |
Send(HttpRequestMessage, CancellationToken) |
Sendet eine HTTP-Anforderung mit der angegebenen Anforderung und einem Abbruchtoken. (Geerbt von HttpMessageInvoker) |
Send(HttpRequestMessage, HttpCompletionOption) |
Sendet eine HTTP-Anforderung. |
Send(HttpRequestMessage, HttpCompletionOption, CancellationToken) |
Sendet eine HTTP-Anforderung mit der angegebenen Anforderung, der Abschlussoption und einem Abbruchtoken. |
SendAsync(HttpRequestMessage) |
Senden Sie eine HTTP-Anforderung als asynchronen Vorgang. |
SendAsync(HttpRequestMessage, CancellationToken) |
Senden Sie eine HTTP-Anforderung als asynchronen Vorgang. |
SendAsync(HttpRequestMessage, HttpCompletionOption) |
Senden Sie eine HTTP-Anforderung als asynchronen Vorgang. |
SendAsync(HttpRequestMessage, HttpCompletionOption, CancellationToken) |
Senden Sie eine HTTP-Anforderung als asynchronen Vorgang. |
ToString() |
Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt. (Geerbt von Object) |
Erweiterungsmethoden
DeleteFromJsonAsync(HttpClient, String, Type, JsonSerializerOptions, CancellationToken) |
Sendet eine DELETE-Anforderung an den angegebenen Uri und gibt den Wert zurück, der sich aus der Deserialisierung des Antworttexts als JSON in einem asynchronen Vorgang ergibt. |
DeleteFromJsonAsync(HttpClient, String, Type, JsonSerializerContext, CancellationToken) |
Sendet eine DELETE-Anforderung an den angegebenen Uri und gibt den Wert zurück, der sich aus der Deserialisierung des Antworttexts als JSON in einem asynchronen Vorgang ergibt. |
DeleteFromJsonAsync(HttpClient, String, Type, CancellationToken) |
Sendet eine DELETE-Anforderung an den angegebenen Uri und gibt den Wert zurück, der sich aus der Deserialisierung des Antworttexts als JSON in einem asynchronen Vorgang ergibt. |
DeleteFromJsonAsync(HttpClient, Uri, Type, JsonSerializerOptions, CancellationToken) |
Sendet eine DELETE-Anforderung an den angegebenen Uri und gibt den Wert zurück, der sich aus der Deserialisierung des Antworttexts als JSON in einem asynchronen Vorgang ergibt. |
DeleteFromJsonAsync(HttpClient, Uri, Type, JsonSerializerContext, CancellationToken) |
Sendet eine DELETE-Anforderung an den angegebenen Uri und gibt den Wert zurück, der sich aus der Deserialisierung des Antworttexts als JSON in einem asynchronen Vorgang ergibt. |
DeleteFromJsonAsync(HttpClient, Uri, Type, CancellationToken) |
Sendet eine DELETE-Anforderung an den angegebenen Uri und gibt den Wert zurück, der sich aus der Deserialisierung des Antworttexts als JSON in einem asynchronen Vorgang ergibt. |
DeleteFromJsonAsync<TValue>(HttpClient, String, JsonSerializerOptions, CancellationToken) |
Sendet eine DELETE-Anforderung an den angegebenen Uri und gibt den Wert zurück, der sich aus der Deserialisierung des Antworttexts als JSON in einem asynchronen Vorgang ergibt. |
DeleteFromJsonAsync<TValue>(HttpClient, String, JsonTypeInfo<TValue>, CancellationToken) |
Sendet eine DELETE-Anforderung an den angegebenen Uri und gibt den Wert zurück, der sich aus der Deserialisierung des Antworttexts als JSON in einem asynchronen Vorgang ergibt. |
DeleteFromJsonAsync<TValue>(HttpClient, String, CancellationToken) |
Sendet eine DELETE-Anforderung an den angegebenen Uri und gibt den Wert zurück, der sich aus der Deserialisierung des Antworttexts als JSON in einem asynchronen Vorgang ergibt. |
DeleteFromJsonAsync<TValue>(HttpClient, Uri, JsonSerializerOptions, CancellationToken) |
Sendet eine DELETE-Anforderung an den angegebenen Uri und gibt den Wert zurück, der sich aus der Deserialisierung des Antworttexts als JSON in einem asynchronen Vorgang ergibt. |
DeleteFromJsonAsync<TValue>(HttpClient, Uri, JsonTypeInfo<TValue>, CancellationToken) |
Sendet eine DELETE-Anforderung an den angegebenen Uri und gibt den Wert zurück, der sich aus der Deserialisierung des Antworttexts als JSON in einem asynchronen Vorgang ergibt. |
DeleteFromJsonAsync<TValue>(HttpClient, Uri, CancellationToken) |
Sendet eine DELETE-Anforderung an den angegebenen Uri und gibt den Wert zurück, der sich aus der Deserialisierung des Antworttexts als JSON in einem asynchronen Vorgang ergibt. |
GetFromJsonAsAsyncEnumerable<TValue>(HttpClient, String, JsonSerializerOptions, CancellationToken) |
Sendet eine |
GetFromJsonAsAsyncEnumerable<TValue>(HttpClient, String, JsonTypeInfo<TValue>, CancellationToken) |
Sendet eine |
GetFromJsonAsAsyncEnumerable<TValue>(HttpClient, String, CancellationToken) |
Sendet eine |
GetFromJsonAsAsyncEnumerable<TValue>(HttpClient, Uri, JsonSerializerOptions, CancellationToken) |
Sendet eine |
GetFromJsonAsAsyncEnumerable<TValue>(HttpClient, Uri, JsonTypeInfo<TValue>, CancellationToken) |
Sendet eine |
GetFromJsonAsAsyncEnumerable<TValue>(HttpClient, Uri, CancellationToken) |
Sendet eine |
GetFromJsonAsync(HttpClient, String, Type, JsonSerializerOptions, CancellationToken) |
Sendet eine GET-Anforderung an den angegebenen URI und gibt den Wert zurück, der sich beim Deserialisieren des Antworttexts als JSON in einem asynchronen Vorgang ergibt. |
GetFromJsonAsync(HttpClient, String, Type, JsonSerializerContext, CancellationToken) |
Sendet eine GET-Anforderung an den angegebenen URI und gibt den Wert zurück, der sich beim Deserialisieren des Antworttexts als JSON in einem asynchronen Vorgang ergibt. |
GetFromJsonAsync(HttpClient, String, Type, CancellationToken) |
Sendet eine GET-Anforderung an den angegebenen URI und gibt den Wert zurück, der sich beim Deserialisieren des Antworttexts als JSON in einem asynchronen Vorgang ergibt. |
GetFromJsonAsync(HttpClient, Uri, Type, JsonSerializerOptions, CancellationToken) |
Sendet eine GET-Anforderung an den angegebenen URI und gibt den Wert zurück, der sich beim Deserialisieren des Antworttexts als JSON in einem asynchronen Vorgang ergibt. |
GetFromJsonAsync(HttpClient, Uri, Type, JsonSerializerContext, CancellationToken) |
Sendet eine GET-Anforderung an den angegebenen URI und gibt den Wert zurück, der sich beim Deserialisieren des Antworttexts als JSON in einem asynchronen Vorgang ergibt. |
GetFromJsonAsync(HttpClient, Uri, Type, CancellationToken) |
Sendet eine GET-Anforderung an den angegebenen URI und gibt den Wert zurück, der sich beim Deserialisieren des Antworttexts als JSON in einem asynchronen Vorgang ergibt. |
GetFromJsonAsync<TValue>(HttpClient, String, JsonSerializerOptions, CancellationToken) |
Sendet eine GET-Anforderung an den angegebenen URI und gibt den Wert zurück, der sich beim Deserialisieren des Antworttexts als JSON in einem asynchronen Vorgang ergibt. |
GetFromJsonAsync<TValue>(HttpClient, String, JsonTypeInfo<TValue>, CancellationToken) |
Sendet eine GET-Anforderung an den angegebenen URI und gibt den Wert zurück, der sich beim Deserialisieren des Antworttexts als JSON in einem asynchronen Vorgang ergibt. |
GetFromJsonAsync<TValue>(HttpClient, String, CancellationToken) |
Sendet eine GET-Anforderung an den angegebenen URI und gibt den Wert zurück, der sich beim Deserialisieren des Antworttexts als JSON in einem asynchronen Vorgang ergibt. |
GetFromJsonAsync<TValue>(HttpClient, Uri, JsonSerializerOptions, CancellationToken) |
Sendet eine GET-Anforderung an den angegebenen URI und gibt den Wert zurück, der sich beim Deserialisieren des Antworttexts als JSON in einem asynchronen Vorgang ergibt. |
GetFromJsonAsync<TValue>(HttpClient, Uri, JsonTypeInfo<TValue>, CancellationToken) |
Sendet eine GET-Anforderung an den angegebenen URI und gibt den Wert zurück, der sich beim Deserialisieren des Antworttexts als JSON in einem asynchronen Vorgang ergibt. |
GetFromJsonAsync<TValue>(HttpClient, Uri, CancellationToken) |
Sendet eine GET-Anforderung an den angegebenen URI und gibt den Wert zurück, der sich beim Deserialisieren des Antworttexts als JSON in einem asynchronen Vorgang ergibt. |
PatchAsJsonAsync<TValue>(HttpClient, String, TValue, JsonSerializerOptions, CancellationToken) |
Sendet eine PATCH-Anforderung an den angegebenen Uri, der das |
PatchAsJsonAsync<TValue>(HttpClient, String, TValue, JsonTypeInfo<TValue>, CancellationToken) |
Sendet eine PATCH-Anforderung an den angegebenen Uri, der das |
PatchAsJsonAsync<TValue>(HttpClient, String, TValue, CancellationToken) |
Sendet eine PATCH-Anforderung an den angegebenen Uri, der das |
PatchAsJsonAsync<TValue>(HttpClient, Uri, TValue, JsonSerializerOptions, CancellationToken) |
Sendet eine PATCH-Anforderung an den angegebenen Uri, der das |
PatchAsJsonAsync<TValue>(HttpClient, Uri, TValue, JsonTypeInfo<TValue>, CancellationToken) |
Sendet eine PATCH-Anforderung an den angegebenen Uri, der das |
PatchAsJsonAsync<TValue>(HttpClient, Uri, TValue, CancellationToken) |
Sendet eine PATCH-Anforderung an den angegebenen Uri, der das |
PostAsJsonAsync<TValue>(HttpClient, String, TValue, JsonSerializerOptions, CancellationToken) |
Sendet einer POST-Anforderung an den angegebenen URI, der den als JSON serialisierten |
PostAsJsonAsync<TValue>(HttpClient, String, TValue, JsonTypeInfo<TValue>, CancellationToken) |
Sendet einer POST-Anforderung an den angegebenen URI, der den als JSON serialisierten |
PostAsJsonAsync<TValue>(HttpClient, String, TValue, CancellationToken) |
Sendet einer POST-Anforderung an den angegebenen URI, der den als JSON serialisierten |
PostAsJsonAsync<TValue>(HttpClient, Uri, TValue, JsonSerializerOptions, CancellationToken) |
Sendet einer POST-Anforderung an den angegebenen URI, der den als JSON serialisierten |
PostAsJsonAsync<TValue>(HttpClient, Uri, TValue, JsonTypeInfo<TValue>, CancellationToken) |
Sendet einer POST-Anforderung an den angegebenen URI, der den als JSON serialisierten |
PostAsJsonAsync<TValue>(HttpClient, Uri, TValue, CancellationToken) |
Sendet einer POST-Anforderung an den angegebenen URI, der den als JSON serialisierten |
PutAsJsonAsync<TValue>(HttpClient, String, TValue, JsonSerializerOptions, CancellationToken) |
Senden einer PUT-Anforderung an den angegebenen URI, der den |
PutAsJsonAsync<TValue>(HttpClient, String, TValue, JsonTypeInfo<TValue>, CancellationToken) |
Senden einer PUT-Anforderung an den angegebenen URI, der den |
PutAsJsonAsync<TValue>(HttpClient, String, TValue, CancellationToken) |
Senden einer PUT-Anforderung an den angegebenen URI, der den |
PutAsJsonAsync<TValue>(HttpClient, Uri, TValue, JsonSerializerOptions, CancellationToken) |
Senden einer PUT-Anforderung an den angegebenen URI, der den |
PutAsJsonAsync<TValue>(HttpClient, Uri, TValue, JsonTypeInfo<TValue>, CancellationToken) |
Senden einer PUT-Anforderung an den angegebenen URI, der den |
PutAsJsonAsync<TValue>(HttpClient, Uri, TValue, CancellationToken) |
Senden einer PUT-Anforderung an den angegebenen URI, der den |
Gilt für:
Weitere Informationen
Feedback
Feedback senden und anzeigen für