ApiStreamMessage
This commit is contained in:
@@ -464,6 +464,8 @@ public class ApiServer : IApiServer
|
||||
// Set response header
|
||||
Log.Debug("Set response headers");
|
||||
context.Response.AppendHeader("API-VERSION", ApiVersion.ToString());
|
||||
if (result.Original.Message is ApiRawMessage apiRawMessage && !string.IsNullOrWhiteSpace(apiRawMessage.FileName))
|
||||
context.Response.AppendHeader("Content-Disposition", $"filename=\"{apiRawMessage.FileName}\"");
|
||||
|
||||
// Set response parameters
|
||||
Log.Debug("Set response parameters");
|
||||
@@ -486,6 +488,14 @@ public class ApiServer : IApiServer
|
||||
context.Response.OutputStream.Write(resultBytes, 0, resultBytes.Length);
|
||||
context.Response.OutputStream.Flush();
|
||||
}
|
||||
else if (result.ResultContent is Stream resultStream)
|
||||
{
|
||||
Log.Info("Sending stream response for " + context.Request.RawUrl);
|
||||
context.Response.ContentType = "application/octet-stream";
|
||||
resultStream.CopyTo(context.Response.OutputStream);
|
||||
context.Response.OutputStream.Flush();
|
||||
resultStream.Close();
|
||||
}
|
||||
|
||||
Log.Debug("Finish response");
|
||||
close(false);
|
||||
@@ -528,8 +538,10 @@ public class ApiServer : IApiServer
|
||||
return new(result, null);
|
||||
|
||||
// Return result with raw data
|
||||
if (result.Message is ApiRawMessage dataMsg)
|
||||
if (result.Message is ApiRawByteMessage dataMsg)
|
||||
return new(result, dataMsg.Data);
|
||||
if (result.Message is ApiRawStreamMessage streamMsg)
|
||||
return new(result, streamMsg.Data);
|
||||
|
||||
// Serializer
|
||||
Log.Debug("Serialize message");
|
||||
|
||||
Reference in New Issue
Block a user