HttpClient.GetStreamAsync Methode

Definition

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:

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:

Gilt für: