在ASP.Net Core Web API中返回文件
回答:
我想在ASP.Net Web API控制器中返回文件,但是所有方法都将HttpResponseMessage
JSON 返回。
回答:
public async Task<HttpResponseMessage> DownloadAsync(string id){
var response = new HttpResponseMessage(HttpStatusCode.OK);
response.Content = new StreamContent({{__insert_stream_here__}});
response.Content.Headers.ContentType = new MediaTypeHeaderValue("application/octet-stream");
return response;
}
当我在浏览器中调用此终结点时,Web
API会将HttpResponseMessage
HTTP内容标头设置为,以JSON形式返回application/json
。
回答:
如果这是ASP.net-Core,则您正在混合使用Web
API版本。让操作返回一个派生,IActionResult
因为在您当前的代码中,该框架被HttpResponseMessage
视为模型。
[Route("api/[controller]")]public class DownloadController : Controller {
//GET api/download/12345abc
[HttpGet("{id}"]
public async Task<IActionResult> Download(string id) {
Stream stream = await {{__get_stream_based_on_id_here__}}
if(stream == null)
return NotFound(); // returns a NotFoundResult with Status404NotFound response.
return File(stream, "application/octet-stream"); // returns a FileStreamResult
}
}
以上是 在ASP.Net Core Web API中返回文件 的全部内容, 来源链接: utcz.com/qa/428724.html