HttpClient.GetStreamAsync Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Inviare una richiesta GET all'URI specificato e restituire il corpo della risposta come flusso in un'operazione asincrona.
Overload
| Nome | Descrizione |
|---|---|
| GetStreamAsync(Uri) |
Inviare una richiesta GET all'URI specificato e restituire il corpo della risposta come flusso in un'operazione asincrona. |
| GetStreamAsync(String) |
Inviare una richiesta GET all'URI specificato e restituire il corpo della risposta come flusso in un'operazione asincrona. |
Commenti
L'operazione non verrà bloccata.
GetStreamAsync(Uri)
Inviare una richiesta GET all'URI specificato e restituire il corpo della risposta come flusso in un'operazione asincrona.
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)
Parametri
- requestUri
- Uri
URI a cui viene inviata la richiesta.
Valori restituiti
Oggetto attività che rappresenta l'operazione asincrona.
Eccezioni
Non requestUri è un URI assoluto e BaseAddress non è impostato.
La richiesta non è riuscita a causa di un problema durante il recupero di una risposta HTTP valida, ad esempio un errore di connettività di rete, un errore DNS, un errore di convalida del certificato del server o una risposta del server non valida. In .NET 8 e versioni successive, il motivo è indicato da HttpRequestError
oppure
Il codice di stato della risposta non è compreso nell'intervallo compreso tra 200 e 299 (che indica l'esito positivo in base allo standard).
oppure
solo .NET Framework: timeout della richiesta.
.NET Core e .NET 5 e versioni successive: la richiesta non è riuscita a causa del timeout.
Commenti
Questa operazione non viene bloccata. L'oggetto Flusso> attività restituito< verrà completato dopo la lettura delle intestazioni di risposta. Questo metodo non legge né memorizza nel buffer il corpo della risposta.
Internamente, questa operazione usa HttpResponseMessage.EnsureSuccessStatusCode per assicurarsi che il codice di stato della risposta sia compreso nell'intervallo di esito positivo (200-299) e genera un'eccezione HttpRequestException in caso contrario.
In alcuni scenari potrebbe essere necessario un maggiore controllo sui codici di stato considerati efficaci; Ad esempio, potrebbe essere previsto che un'API restituisca 200 OKsempre . In questi casi, è consigliabile controllare manualmente se StatusCode corrisponde al valore previsto.
Note
In caso di timeout:
- .NET Framework genera un'eccezione HttpRequestException.
- .NET Core genera un OperationCanceledException senza alcuna eccezione interna.
- .NET 5 e versioni successive generano un OperationCanceledException che annida un TimeoutException.
Si applica a
GetStreamAsync(String)
Inviare una richiesta GET all'URI specificato e restituire il corpo della risposta come flusso in un'operazione asincrona.
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)
Parametri
- requestUri
- String
URI a cui viene inviata la richiesta.
Valori restituiti
Oggetto attività che rappresenta l'operazione asincrona.
Eccezioni
Non requestUri è un URI assoluto e BaseAddress non è impostato.
La richiesta non è riuscita a causa di un problema durante il recupero di una risposta HTTP valida, ad esempio un errore di connettività di rete, un errore DNS, un errore di convalida del certificato del server o una risposta del server non valida. In .NET 8 e versioni successive, il motivo è indicato da HttpRequestError
oppure
Il codice di stato della risposta non è compreso nell'intervallo compreso tra 200 e 299 (che indica l'esito positivo in base allo standard).
oppure
solo .NET Framework: timeout della richiesta.
.NET Core e .NET 5 e versioni successive: la richiesta non è riuscita a causa del timeout.
L'URI della richiesta fornito non è un URI relativo o assoluto valido.
Commenti
Questa operazione non viene bloccata. L'oggetto Flusso> attività restituito< verrà completato dopo la lettura delle intestazioni di risposta. Questo metodo non legge o memorizza nel buffer il corpo della risposta.
Internamente, questa operazione usa HttpResponseMessage.EnsureSuccessStatusCode per assicurarsi che il codice di stato della risposta sia compreso nell'intervallo di esito positivo (200-299) e genera un'eccezione HttpRequestException in caso contrario.
In alcuni scenari potrebbe essere necessario un maggiore controllo sui codici di stato considerati efficaci; Ad esempio, potrebbe essere previsto che un'API restituisca 200 OKsempre . In questi casi, è consigliabile controllare manualmente se StatusCode corrisponde al valore previsto.
Note
In caso di timeout:
- .NET Framework genera un'eccezione HttpRequestException.
- .NET Core genera un OperationCanceledException senza alcuna eccezione interna.
- .NET 5 e versioni successive generano un OperationCanceledException che annida un TimeoutException.