我正在使用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();
由于
答案 0 :(得分:0)
您可能会从客户端执行API的异步调用。在这种情况下,您将获得API返回的所有数据,这些数据将不会自动下载。
尝试从客户端(JS)做这样的事情:
window.open(apiDownloadLink, '_blank', '');
这将导致回发,文件将由浏览器下载。
您可以在this question
中找到更多信息