HttpClient.GetStreamAsync Método
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Envie um pedido GET para o URI especificado e retorne o corpo de resposta como um fluxo numa operação assíncrona.
Sobrecargas
| Name | Description |
|---|---|
| GetStreamAsync(Uri) |
Envie um pedido GET para o URI especificado e retorne o corpo de resposta como um fluxo numa operação assíncrona. |
| GetStreamAsync(String) |
Envie um pedido GET para o URI especificado e retorne o corpo de resposta como um fluxo numa operação assíncrona. |
Observações
A operação não vai bloquear.
GetStreamAsync(Uri)
Envie um pedido GET para o URI especificado e retorne o corpo de resposta como um fluxo numa operação assíncrona.
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)
Parâmetros
- requestUri
- Uri
O URI para onde o pedido é enviado.
Devoluções
O objeto tarefa que representa a operação assíncrona.
Exceções
Não requestUri é um URI absoluto e BaseAddress não está configurado.
O pedido falhou devido a um problema em obter uma resposta HTTP válida, como falha de conectividade de rede, falha DNS, erro de validação de certificado do servidor ou resposta inválida do servidor. Em versões .NET 8 e posteriores, a razão é indicada por HttpRequestError
-ou-
O código de estado de resposta estava fora do intervalo de 200-299 (o que indica sucesso segundo o padrão).
-ou-
Framework .NET apenas: O pedido expirou.
.NET Core e .NET 5 e posteriores apenas: O pedido falhou devido ao timeout.
Observações
Esta operação não bloqueia. O objeto Fluxo> de Tarefas< devolvido será concluído após a leitura dos cabeçalhos de resposta. Este método não lê nem armazena o corpo de resposta.
Internamente, esta operação serve HttpResponseMessage.EnsureSuccessStatusCode para garantir que o código de estado da resposta está no intervalo de sucesso (200-299) e lança um HttpRequestException caso contrário.
Em alguns cenários, pode ser necessário mais controlo sobre quais os códigos de estado considerados bem-sucedidos; por exemplo, uma API pode ser esperada que devolva 200 OKsempre . Nesses casos, recomendamos verificar manualmente se StatusCode corresponde ao valor esperado.
Note
Em caso de tempo morto:
- .NET Framework lança um HttpRequestException.
- .NET Core lança um OperationCanceledException sem qualquer exceção interna.
- .NET versões 5 e posteriores lançam um OperationCanceledException que aninhou um TimeoutException.
Aplica-se a
GetStreamAsync(String)
Envie um pedido GET para o URI especificado e retorne o corpo de resposta como um fluxo numa operação assíncrona.
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)
Parâmetros
- requestUri
- String
O URI para onde o pedido é enviado.
Devoluções
O objeto tarefa que representa a operação assíncrona.
Exceções
Não requestUri é um URI absoluto e BaseAddress não está configurado.
O pedido falhou devido a um problema em obter uma resposta HTTP válida, como falha de conectividade de rede, falha DNS, erro de validação de certificado do servidor ou resposta inválida do servidor. Em versões .NET 8 e posteriores, a razão é indicada por HttpRequestError
-ou-
O código de estado de resposta estava fora do intervalo de 200-299 (o que indica sucesso segundo o padrão).
-ou-
Framework .NET apenas: O pedido expirou.
.NET Core e .NET 5 e posteriores apenas: O pedido falhou devido ao timeout.
O URI de pedido fornecido não é válido relativo nem absoluto.
Observações
Esta operação não bloqueia. O objeto Fluxo> de Tarefas< devolvido será concluído após a leitura dos cabeçalhos de resposta. Este método não lê nem armazena o corpo de resposta.
Internamente, esta operação serve HttpResponseMessage.EnsureSuccessStatusCode para garantir que o código de estado da resposta está no intervalo de sucesso (200-299) e lança um HttpRequestException caso contrário.
Em alguns cenários, pode ser necessário mais controlo sobre quais os códigos de estado considerados bem-sucedidos; por exemplo, uma API pode ser esperada que devolva 200 OKsempre . Nesses casos, recomendamos verificar manualmente se StatusCode corresponde ao valor esperado.
Note
Em caso de tempo morto:
- .NET Framework lança um HttpRequestException.
- .NET Core lança um OperationCanceledException sem qualquer exceção interna.
- .NET versões 5 e posteriores lançam um OperationCanceledException que aninhou um TimeoutException.