HttpClient.GetStreamAsync Methode
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.
Senden Sie eine GET-Anforderung an den angegebenen URI, und geben Sie den Antworttext als Datenstrom in einem asynchronen Vorgang zurück.
Überlädt
| Name | Beschreibung |
|---|---|
| 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(String) |
Senden Sie eine GET-Anforderung an den angegebenen URI, und geben Sie den Antworttext als Datenstrom in einem asynchronen Vorgang zurück. |
Hinweise
Der Vorgang wird nicht blockiert.
GetStreamAsync(Uri)
Senden Sie eine GET-Anforderung an den angegebenen URI, und geben Sie den Antworttext als Datenstrom in einem asynchronen Vorgang zurück.
public:
System::Threading::Tasks::Task<System::IO::Stream ^> ^ GetStreamAsync(Uri ^ requestUri);
public System.Threading.Tasks.Task<System.IO.Stream> GetStreamAsync(Uri requestUri);
member this.GetStreamAsync : Uri -> System.Threading.Tasks.Task<System.IO.Stream>
Public Function GetStreamAsync (requestUri As Uri) As Task(Of Stream)
Parameter
- requestUri
- Uri
Der URI, an den die Anforderung gesendet wird.
Gibt zurück
Das Aufgabenobjekt, das den asynchronen Vorgang darstellt.
Ausnahmen
Dies requestUri ist kein absoluter URI und BaseAddress wird nicht festgelegt.
Fehler bei der Anforderung aufgrund eines Problems beim Abrufen einer gültigen HTTP-Antwort, z. B. Netzwerkverbindungsfehler, DNS-Fehler, Serverzertifikatüberprüfungsfehler oder ungültiger Serverantwort. Auf .NET 8 und neueren Versionen wird der Grund durch HttpRequestError
-oder-
Der Antwortstatuscode lag außerhalb des Bereichs von 200-299 (was den Erfolg entsprechend dem Standard angibt).
-oder-
.NET Framework: Timeout der Anforderung.
.NET Core und .NET 5 und höher: Die Anforderung ist aufgrund eines Timeouts fehlgeschlagen.
Hinweise
Dieser Vorgang blockiert nicht. Das zurückgegebene Task<Stream-Objekt> wird abgeschlossen, nachdem die Antwortheader gelesen wurden. Diese Methode liest oder puffert den Antworttext nicht.
Intern wird dieser Vorgang verwendet HttpResponseMessage.EnsureSuccessStatusCode , um sicherzustellen, dass sich der Antwortstatuscode im Erfolgsbereich (200-299) befindet und wenn HttpRequestException dies nicht der Fall ist.
In einigen Szenarien benötigen Sie möglicherweise mehr Kontrolle darüber, welche Statuscodes als erfolgreich betrachtet werden; Eine API kann z. B. erwartet werden, dass sie immer zurückgegeben 200 OKwird. In solchen Fällen wird empfohlen, manuell zu überprüfen, ob StatusCode der erwartete Wert übereinstimmt.
Note
Bei einem Timeout:
- .NET Framework löst ein HttpRequestException aus.
- .NET Core löst eine OperationCanceledException ohne innere Ausnahme aus.
- .NET 5 und höhere Versionen lösen eine OperationCanceledException aus, die eine TimeoutException verschachtelt.
Gilt für:
GetStreamAsync(String)
Senden Sie eine GET-Anforderung an den angegebenen URI, und geben Sie den Antworttext als Datenstrom in einem asynchronen Vorgang zurück.
public:
System::Threading::Tasks::Task<System::IO::Stream ^> ^ GetStreamAsync(System::String ^ requestUri);
public System.Threading.Tasks.Task<System.IO.Stream> GetStreamAsync(string requestUri);
member this.GetStreamAsync : string -> System.Threading.Tasks.Task<System.IO.Stream>
Public Function GetStreamAsync (requestUri As String) As Task(Of Stream)
Parameter
- requestUri
- String
Der URI, an den die Anforderung gesendet wird.
Gibt zurück
Das Aufgabenobjekt, das den asynchronen Vorgang darstellt.
Ausnahmen
Dies requestUri ist kein absoluter URI und BaseAddress wird nicht festgelegt.
Fehler bei der Anforderung aufgrund eines Problems beim Abrufen einer gültigen HTTP-Antwort, z. B. Netzwerkverbindungsfehler, DNS-Fehler, Serverzertifikatüberprüfungsfehler oder ungültiger Serverantwort. Auf .NET 8 und neueren Versionen wird der Grund durch HttpRequestError
-oder-
Der Antwortstatuscode lag außerhalb des Bereichs von 200-299 (was den Erfolg entsprechend dem Standard angibt).
-oder-
.NET Framework: Timeout der Anforderung.
.NET Core und .NET 5 und höher: Die Anforderung ist aufgrund eines Timeouts fehlgeschlagen.
Der bereitgestellte Anforderungs-URI ist kein gültiger relativer oder absoluter URI.
Hinweise
Dieser Vorgang blockiert nicht. Das zurückgegebene Task<Stream-Objekt> wird abgeschlossen, nachdem die Antwortheader gelesen wurden. Diese Methode liest oder puffert den Antworttext nicht.
Intern wird dieser Vorgang verwendet HttpResponseMessage.EnsureSuccessStatusCode , um sicherzustellen, dass sich der Antwortstatuscode im Erfolgsbereich (200-299) befindet und wenn HttpRequestException dies nicht der Fall ist.
In einigen Szenarien benötigen Sie möglicherweise mehr Kontrolle darüber, welche Statuscodes als erfolgreich betrachtet werden; Eine API kann z. B. erwartet werden, dass sie immer zurückgegeben 200 OKwird. In solchen Fällen wird empfohlen, manuell zu überprüfen, ob StatusCode der erwartete Wert übereinstimmt.
Note
Bei einem Timeout:
- .NET Framework löst ein HttpRequestException aus.
- .NET Core löst eine OperationCanceledException ohne innere Ausnahme aus.
- .NET 5 und höhere Versionen lösen eine OperationCanceledException aus, die eine TimeoutException verschachtelt.