【发布时间】:2018-08-15 08:01:00
【问题描述】:
我有一个返回 csv 文件的 Web API。如果我发出 GET 请求,例如通过。浏览器,我会弹出一个窗口询问从哪里下载 csv 文件:
HttpResponseMessage result = new HttpResponseMessage(HttpStatusCode.OK);
result.Content = new StringContent(res);
result.Content.Headers.ContentType = new MediaTypeHeaderValue("application/octet-stream");
result.Content.Headers.ContentDisposition = new ContentDispositionHeaderValue("attachment")
{
FileName = "export_" + DateTime.Now + ".csv"
};
return ResponseMessage(result);
我正在尝试在另一个 MVC 控制器中调用此 API 端点并返回相同的 csv 文件。我该怎么做?
var httpWebRequest = (HttpWebRequest)WebRequest.Create(webAPIEndpoint);
httpWebRequest.Method = "GET";
var httpResponse = (HttpWebResponse)httpWebRequest.GetResponse();
return httpResponse;
【问题讨论】:
-
您应该查看从 MVC 操作返回 FileStreamResult。将 API 中的数据读入一个流(例如内存流),然后初始化并返回一个 FileStreamResult,其内容类型设置为“text/csv”
标签: asp.net-mvc asp.net-web-api model-view-controller httpwebrequest