我正在使用.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);
}
我是处理流的新手,如果您能告诉我如何做得更好,我将不胜感激。谢谢