1

我正在发出一个 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 作为响应并且没有完成编码,因为它不是十六进制值。

流已损坏(可能不是这种情况,因为我将端点用于不同的要求)或响应已损坏。

我应该如何检查确切的原因是什么?请让我知道我还能尝试什么。

4

0 回答 0