HttpClient.GetByteArrayAsync Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Отправьте запрос GET в указанный универсальный код ресурса (URI) и верните текст ответа в виде массива байтов в асинхронной операции.
Перегрузки
| Имя | Описание |
|---|---|
| GetByteArrayAsync(String) |
Отправляет запрос GET в указанный универсальный код ресурса (URI) и возвращает текст ответа в виде массива байтов в асинхронной операции. |
| GetByteArrayAsync(Uri) |
Отправьте запрос GET в указанный универсальный код ресурса (URI) и верните текст ответа в виде массива байтов в асинхронной операции. |
Комментарии
Операция не блокируется.
GetByteArrayAsync(String)
Отправляет запрос GET в указанный универсальный код ресурса (URI) и возвращает текст ответа в виде массива байтов в асинхронной операции.
public:
System::Threading::Tasks::Task<cli::array <System::Byte> ^> ^ GetByteArrayAsync(System::String ^ requestUri);
public System.Threading.Tasks.Task<byte[]> GetByteArrayAsync(string requestUri);
member this.GetByteArrayAsync : string -> System.Threading.Tasks.Task<byte[]>
Public Function GetByteArrayAsync (requestUri As String) As Task(Of Byte())
Параметры
- requestUri
- String
URI, в который отправляется запрос.
Возвращаемое значение
Объект задачи, представляющий асинхронную операцию.
Исключения
Не requestUri является абсолютным универсальным кодом ресурса (URI) и BaseAddress не задан.
Сбой запроса из-за проблемы с получением допустимого HTTP-ответа, например сбой сетевого подключения, сбой DNS, ошибка проверки сертификата сервера или недопустимый ответ сервера. На .NET 8 и более поздних версиях причина указывается HttpRequestError
–или–
Код состояния ответа был вне диапазона 200–299 (который указывает на успешность в соответствии со стандартом).
–или–
только .NET Framework: истекло время ожидания запроса.
.NET Core и .NET 5 и более поздних версий: запрос завершился ошибкой из-за времени ожидания.
Предоставленный URI запроса не является допустимым относительным или абсолютным универсальным кодом ресурса (URI).
Комментарии
Эта операция не блокируется. Возвращенный Task<TResult> объект завершится после чтения всего текста ответа.
Внутри системы эта операция используется HttpResponseMessage.EnsureSuccessStatusCode для обеспечения того, чтобы код состояния ответа находится в диапазоне успешности (200–299) и вызывает исключение HttpRequestException , если оно не так.
В некоторых сценариях может потребоваться больше контроля над кодами состояния, которые считаются успешными; Например, api может всегда возвращать 200 OK. В таких случаях рекомендуется вручную проверить, соответствует ли StatusCode ожидаемое значение.
Note
При истечении времени ожидания в разных реализациях .NET создаются различные исключения.
- HttpRequestException создается во всех применимых версиях .NET Framework.
- OperationCanceledException без внутреннего исключения создается во всех применимых версиях .NET Core.
- OperationCanceledException, вложенной в TimeoutException, создается на .NET 5 и более поздних версиях.
Применяется к
GetByteArrayAsync(Uri)
Отправьте запрос GET в указанный универсальный код ресурса (URI) и верните текст ответа в виде массива байтов в асинхронной операции.
public:
System::Threading::Tasks::Task<cli::array <System::Byte> ^> ^ GetByteArrayAsync(Uri ^ requestUri);
public System.Threading.Tasks.Task<byte[]> GetByteArrayAsync(Uri requestUri);
member this.GetByteArrayAsync : Uri -> System.Threading.Tasks.Task<byte[]>
Public Function GetByteArrayAsync (requestUri As Uri) As Task(Of Byte())
Параметры
- requestUri
- Uri
URI, в который отправляется запрос.
Возвращаемое значение
Объект задачи, представляющий асинхронную операцию.
Исключения
Не requestUri является абсолютным универсальным кодом ресурса (URI) и BaseAddress не задан.
Сбой запроса из-за проблемы с получением допустимого HTTP-ответа, например сбой сетевого подключения, сбой DNS, ошибка проверки сертификата сервера или недопустимый ответ сервера. На .NET 8 и более поздних версиях причина указывается HttpRequestError.
–или–
Код состояния ответа был вне диапазона 200–299 (который указывает на успешность в соответствии со стандартом).
–или–
только .NET Framework: истекло время ожидания запроса.
.NET Core и .NET 5 и более поздних версий: запрос завершился ошибкой из-за времени ожидания.
Комментарии
Эта операция не блокируется. Возвращенный Task<TResult> объект завершится после чтения всего текста ответа.
Внутри системы эта операция используется HttpResponseMessage.EnsureSuccessStatusCode для обеспечения того, чтобы код состояния ответа находится в диапазоне успешности (200–299) и вызывает исключение HttpRequestException , если оно не так.
В некоторых сценариях может потребоваться больше контроля над кодами состояния, которые считаются успешными; Например, api может всегда возвращать 200 OK. В таких случаях рекомендуется вручную проверить, соответствует ли StatusCode ожидаемое значение.
Note
В случае ожидания:
- .NET Framework создает HttpRequestException.
- .NET Core создает OperationCanceledException без внутреннего исключения.
- .NET 5 и более поздних версий вызывают OperationCanceledException, вложенную в TimeoutException.