我正在编写一个用于处理PDF文档的WebAPI。它是在早期实现IHttpHandler并使用HttpContext获取上下文的ashx页面中编写的。我现在正在使用WebAPI编写它。在WebAPI中,我们有HttpResponseMessage。对于HttpContext.Response.BinaryWrite,我们在HttpResponseMessage中有新的ByteArrayContent。但是WebAPI中HttpContext.Response.OutputStream的替代方法是什么?我需要在WebAPI中使用OutputStram的替代方法,因为我将此OutputStream作为参数传递给另一个dll。
ashx中的代码:
SomeReport.PdfReport rpt = new SomeReport.PdfReport(docID);
rpt.CreateReport(context.Response.OutputStream);
答案 0 :(得分:3)
实际上,您可以使用任何流,例如show()
,但结果应该包含在MemoryStream
中。
StreamContent
如果您需要直接写入输出流,请考虑使用public HttpResponseMessage Get()
{
var response = Request.CreateResponse();
var outputStream = new MemoryStream();
//write data to output stream
//or passing it to somewhere
outputStream.WriteByte(83);
outputStream.Position = 0;
response.Content = new StreamContent(outputStream);
return response;
}
。 Example