private HttpResponseMsg CreateResponseMessage(HttpWebResponse webResponse, HttpRequestMessage request) { var httpResponseMessage = new HttpResponseMsg(webResponse.StatusCode) { ReasonPhrase = webResponse.StatusDescription, Version = webResponse.ProtocolVersion, RequestMessage = request }; httpResponseMessage.Content = new ResponseContent(new ResponseStreamWrapper(webResponse)); request.RequestUri = webResponse.ResponseUri; WebHeaderCollection headers = webResponse.Headers; HttpContentHeaders headers2 = httpResponseMessage.Content.Headers; HttpResponseHeaders headers3 = httpResponseMessage.Headers; if (webResponse.ContentLength >= 0L) { headers2.ContentLength = new long?(webResponse.ContentLength); } for (int i = 0; i < headers.Count; i++) { string key = headers.GetKey(i); if (string.Compare(key, "Content-Length", StringComparison.OrdinalIgnoreCase) != 0) { string[] values = headers.GetValues(i); if (!headers3.TryAddWithoutValidation(key, values)) { bool flag = headers2.TryAddWithoutValidation(key, values); } } } return(httpResponseMessage); }
private HttpResponseMsg CreateResponseMessage(HttpWebResponse webResponse, HttpRequestMessage request) { var httpResponseMessage = new HttpResponseMsg(webResponse.StatusCode); httpResponseMessage.ReasonPhrase = webResponse.StatusDescription; httpResponseMessage.Version = webResponse.ProtocolVersion; httpResponseMessage.RequestMessage = request; var content = new MemoryTributary(); using (var stream = webResponse.GetResponseStream()) { stream.CopyTo(content); } content.Position = 0; httpResponseMessage.Content = new ResponseContent(content); request.RequestUri = webResponse.ResponseUri; WebHeaderCollection headers = webResponse.Headers; HttpContentHeaders headers2 = httpResponseMessage.Content.Headers; HttpResponseHeaders headers3 = httpResponseMessage.Headers; if (webResponse.ContentLength >= 0L) { headers2.ContentLength = new long?(webResponse.ContentLength); } for (int i = 0; i < headers.Count; i++) { string key = headers.GetKey(i); if (string.Compare(key, "Content-Length", StringComparison.OrdinalIgnoreCase) != 0) { string[] values = headers.GetValues(i); if (!headers3.TryAddWithoutValidation(key, values)) { bool flag = headers2.TryAddWithoutValidation(key, values); } } } webResponse.Close(); return(httpResponseMessage); }