internal static HttpResponseMessage CreateBufferedCopy(this HttpResponseMessage httpResponseMessage) { Fx.Assert(httpResponseMessage != null, "The 'httpResponseMessage' parameter should never be null."); HttpResponseMessage bufferedHttpResponseMessage = new HttpResponseMessage(); bufferedHttpResponseMessage.ReasonPhrase = httpResponseMessage.ReasonPhrase; bufferedHttpResponseMessage.StatusCode = httpResponseMessage.StatusCode; bufferedHttpResponseMessage.Version = (Version)(httpResponseMessage.Version != null ? httpResponseMessage.Version.Clone() : null); if (httpResponseMessage.RequestMessage != null) { bufferedHttpResponseMessage.RequestMessage = httpResponseMessage.RequestMessage.CreateBufferedCopy(); } foreach (KeyValuePair <string, IEnumerable <string> > header in httpResponseMessage.Headers) { bufferedHttpResponseMessage.Headers.AddHeaderWithoutValidation(header); } bufferedHttpResponseMessage.Content = HttpRequestMessageExtensionMethods.CreateBufferedCopyOfContent(httpResponseMessage.Content); return(bufferedHttpResponseMessage); }
internal static void MergeWebHeaderCollection(this HttpResponseMessage responseMessage, WebHeaderCollection headersToMerge) { responseMessage.CreateContentIfNull(); HttpRequestMessageExtensionMethods.MergeWebHeaderCollectionWithHttpHeaders(headersToMerge, responseMessage.Headers, responseMessage.Content.Headers); }