从C#下载文件无法正常工作,我可以在浏览器中看到来自API的响应

时间:2017-03-29 20:03:51

标签: c# api

我正在使用C#api,我从UI调用它,我可以调用它,我可以看到当我检查浏览器响应时,从api返回的数据,但它没有强制它下载响应。这是我在C#api中使用的代码

var response = HttpContext.Current.Response;
response.Clear();

string fileName = CleanFileName(string.Format("{0} test - {1}.txt", name, DateTime.Now.ToString("yyyy-MM-dd HH_mm_ss")));
response.AddHeader("content-disposition", "attachment; filename = \"" + fileName + "\"");
response.ContentType = "text/csv";
response.AddHeader("Pragma", "must-revalidate");
response.AddHeader("Cache-Control", "must-revalidate");

byte[] byteArray = Encoding.UTF8.GetBytes(mydata);
response.AppendHeader("Content-Length", byteArray.Length.ToString());
response.BinaryWrite(byteArray);

response.End();
response.Flush();

由于

1 个答案:

答案 0 :(得分:0)

您可能会从客户端执行API的异步调用。在这种情况下,您将获得API返回的所有数据,这些数据将不会自动下载。

尝试从客户端(JS)做这样的事情:

window.open(apiDownloadLink, '_blank', '');

这将导致回发,文件将由浏览器下载。

您可以在this question

中找到更多信息