如何使用HttpClient.GetStreamAsync()方法?

LP1*_*P13 -3 c# stream httpclient

我正在尝试使用HttpClient.GetStreamAsync()方法下载文件。但是,这里有一个问题。GetStreamAsync()方法返回只读流,因此我无法使用Length属性声明IM试图读取字节的字节数组缓冲区。

     using (var file = await _httpClient.GetStreamAsync(url).ConfigureAwait(false))
     {
         // it fails at file.Length below
         byte[] blob = new byte[file.Length];
         await file.ReadAsync(blob, 0, (int)file.Length).ConfigureAwait(false);         
     }
Run Code Online (Sandbox Code Playgroud)

Ste*_*ary 5

您可以将其读入a MemoryStream并从那里获取字节数组:

using (var file = await _httpClient.GetStreamAsync(url).ConfigureAwait(false))
using (var memoryStream = new MemoryStream())
{
  await file.CopyToAsync(memoryStream);
  return memoryStream.ToArray();
}
Run Code Online (Sandbox Code Playgroud)