我正在发出一个 Post 请求并从一个端点接收响应,通过它我接收到 excel 内容。
我之前使用过这个端点并尝试绑定一个电子邮件工作者,效果很好。(符合终点的反应很清楚)。
现在有一个不同的要求,我需要对这个端点进行 post 调用并下载 excel file.xlsx 文件,因此生成的文件已损坏,我 excel 会在文件下载后尝试恢复它。
已经通过不同的线程并尝试了几乎所有内容。
似乎没有任何效果。
尝试1:
Response.Clear();
stream.Flush();
stream.Seek(0, SeekOrigin.Begin);
return File(stream, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", fileName.Replace("\"", String.Empty));
在调试时,我确保关闭响应。(响应。结束())。甚至添加了显式标题
Response.AddHeader("content-disposition", "attachment; filename=\"" fileName".xlsx\"");
Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
试试 2
已明确将 memoryStream 写入响应。Response.BinaryWrite(tgtBytes);
在写入响应之前确保 Response.Clear 并确保 memoryStream.dispose 和 Response.End。甚至用过。Response.ClearHeaders()。
试试 - 3。
而不是 MemoryStream,尝试使用文件流,保存在文件中并从写入的文件中下载。问题仍然存在。
我得到一个 binaryStream 作为响应并且没有完成编码,因为它不是十六进制值。
流已损坏(可能不是这种情况,因为我将端点用于不同的要求)或响应已损坏。
我应该如何检查确切的原因是什么?请让我知道我还能尝试什么。