private static ModuleHttpResponse BuildResponseMessage(MemoryStream responseStream, HttpResponseFeature responseFeature) { var response = new ModuleHttpResponse { StatusCode = responseFeature.StatusCode, ReasonPhrase = responseFeature.ReasonPhrase, Body = responseStream.ToArray(), Headers = new Dictionary <string, string[]>() }; foreach (var entry in responseFeature.Headers) { response.Headers.Add(entry.Key, entry.Value.ToArray()); } return(response); }
private static async Task <IHttpResponseFeature> UnpackResponseMessage(HttpContext context, ModuleHttpResponse responseMessage) { var responseFeature = GetResponseFeature(context); responseFeature.StatusCode = responseMessage.StatusCode; responseFeature.ReasonPhrase = responseMessage.ReasonPhrase; responseFeature.Headers.Clear(); foreach (var header in responseMessage.Headers) { responseFeature.Headers.Add(header.Key, new StringValues(header.Value)); } if (responseMessage.Body.Length > 0) { await responseFeature.Body.WriteAsync(responseMessage.Body, 0, responseMessage.Body.Length); } return(responseFeature); }