HttpClient.GetStreamAsync Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Отправьте запрос GET в указанный универсальный код ресурса (URI) и верните текст ответа в виде потока в асинхронной операции.
Перегрузки
| Имя | Описание |
|---|---|
| GetStreamAsync(Uri) |
Отправьте запрос GET в указанный универсальный код ресурса (URI) и верните текст ответа в виде потока в асинхронной операции. |
| GetStreamAsync(String) |
Отправьте запрос GET в указанный универсальный код ресурса (URI) и верните текст ответа в виде потока в асинхронной операции. |
Комментарии
Операция не блокируется.
GetStreamAsync(Uri)
Отправьте запрос GET в указанный универсальный код ресурса (URI) и верните текст ответа в виде потока в асинхронной операции.
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)
Параметры
- requestUri
- Uri
URI, в который отправляется запрос.
Возвращаемое значение
Объект задачи, представляющий асинхронную операцию.
Исключения
Не requestUri является абсолютным универсальным кодом ресурса (URI) и BaseAddress не задан.
Сбой запроса из-за проблемы с получением допустимого HTTP-ответа, например сбой сетевого подключения, сбой DNS, ошибка проверки сертификата сервера или недопустимый ответ сервера. На .NET 8 и более поздних версиях причина указывается HttpRequestError
–или–
Код состояния ответа был вне диапазона 200–299 (который указывает на успешность в соответствии со стандартом).
–или–
только .NET Framework: истекло время ожидания запроса.
.NET Core и .NET 5 и более поздних версий: запрос завершился ошибкой из-за времени ожидания.
Комментарии
Эта операция не блокируется. Возвращенный объект Task<Stream> завершится после чтения заголовков ответа. Этот метод не считывает и не буферизирует текст отклика.
Внутри системы эта операция используется HttpResponseMessage.EnsureSuccessStatusCode для обеспечения того, чтобы код состояния ответа находится в диапазоне успешности (200–299) и вызывает исключение HttpRequestException , если оно не так.
В некоторых сценариях может потребоваться больше контроля над кодами состояния, которые считаются успешными; Например, api может всегда возвращать 200 OK. В таких случаях рекомендуется вручную проверить, соответствует ли StatusCode ожидаемое значение.
Note
В случае ожидания:
- .NET Framework создает HttpRequestException.
- .NET Core создает OperationCanceledException без внутреннего исключения.
- .NET 5 и более поздних версий вызывают OperationCanceledException, вложенную в TimeoutException.
Применяется к
GetStreamAsync(String)
Отправьте запрос GET в указанный универсальный код ресурса (URI) и верните текст ответа в виде потока в асинхронной операции.
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)
Параметры
- requestUri
- String
URI, в который отправляется запрос.
Возвращаемое значение
Объект задачи, представляющий асинхронную операцию.
Исключения
Не requestUri является абсолютным универсальным кодом ресурса (URI) и BaseAddress не задан.
Сбой запроса из-за проблемы с получением допустимого HTTP-ответа, например сбой сетевого подключения, сбой DNS, ошибка проверки сертификата сервера или недопустимый ответ сервера. На .NET 8 и более поздних версиях причина указывается HttpRequestError
–или–
Код состояния ответа был вне диапазона 200–299 (который указывает на успешность в соответствии со стандартом).
–или–
только .NET Framework: истекло время ожидания запроса.
.NET Core и .NET 5 и более поздних версий: запрос завершился ошибкой из-за времени ожидания.
Предоставленный URI запроса не является допустимым относительным или абсолютным универсальным кодом ресурса (URI).
Комментарии
Эта операция не блокируется. Возвращенный объект Task<Stream> завершится после чтения заголовков ответа. Этот метод не считывает или буферизирует текст отклика.
Внутри системы эта операция используется HttpResponseMessage.EnsureSuccessStatusCode для обеспечения того, чтобы код состояния ответа находится в диапазоне успешности (200–299) и вызывает исключение HttpRequestException , если оно не так.
В некоторых сценариях может потребоваться больше контроля над кодами состояния, которые считаются успешными; Например, api может всегда возвращать 200 OK. В таких случаях рекомендуется вручную проверить, соответствует ли StatusCode ожидаемое значение.
Note
В случае ожидания:
- .NET Framework создает HttpRequestException.
- .NET Core создает OperationCanceledException без внутреннего исключения.
- .NET 5 и более поздних версий вызывают OperationCanceledException, вложенную в TimeoutException.