接收FileStreamResult的响应

时间:2019-06-10 20:02:09

标签: c# asp.net-core stream

我正在使用.NET Core 2.1,想知道如何使用GetAsync()调用Web api来获取没有缓冲的文件流(如果可能的话),因为它们将是巨大的文件。

发出请求的客户端是另一个Web应用程序(而不是浏览器),所以我对模仿类型并不真正感兴趣,但是文件从PDF,文本文件到图像不等。我将文件保存到客户端Web应用程序本地(或者稍后再转发到另一个Web应用程序)。

从我尝试过(没有成功)并阅读的内容来看,我有以下客户端应用程序发出请求:

var httpClient = new HttpClient();
var response = await httpClient.GetAsync(uri);
string content = await response.Content.ReadAsStringAsync();
// ^Is this correct?

响应该请求的Web应用程序如下:

[HttpGet]
public IActionResult GetFileContent()
{
  var stream = new MemoryStream(Encoding.ASCII.GetBytes("Hello World, 12345, I am going to be 1GB + later!..."));

  var result = new FileStreamResult(stream, new MediaTypeHeaderValue("application/octet-stream"))
  {
    FileDownloadName = "test.txt"
  };

  return Ok(result);
}

我是处理流的新手,如果您能告诉我如何做得更好,我将不胜感激。谢谢

0 个答案:

没有答案