将文件附件从 Web API 转发到 MVC 控制器
Forward file attachment from Web API to MVC controller
我有一个 Web API return 是一个 csv 文件。如果我发出 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 控制器和 return 相同的 csv 文件中调用此 API 端点。我该怎么做?
var httpWebRequest = (HttpWebRequest)WebRequest.Create(webAPIEndpoint);
httpWebRequest.Method = "GET";
var httpResponse = (HttpWebResponse)httpWebRequest.GetResponse();
return httpResponse;
MVC 控制器中的响应(路由)通常为 ActionResult
。您正在 returning 的 httpResponse
对象是一个 HttpWebResponse
。
您可能应该从 httpResponse
读取 csv 内容(使用 GetResponseStream
),然后 return 使用适当的 MVC ActionResult 读取 csv 内容。
我有一个 Web API return 是一个 csv 文件。如果我发出 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 控制器和 return 相同的 csv 文件中调用此 API 端点。我该怎么做?
var httpWebRequest = (HttpWebRequest)WebRequest.Create(webAPIEndpoint);
httpWebRequest.Method = "GET";
var httpResponse = (HttpWebResponse)httpWebRequest.GetResponse();
return httpResponse;
MVC 控制器中的响应(路由)通常为 ActionResult
。您正在 returning 的 httpResponse
对象是一个 HttpWebResponse
。
您可能应该从 httpResponse
读取 csv 内容(使用 GetResponseStream
),然后 return 使用适当的 MVC ActionResult 读取 csv 内容。