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);
        }
Ejemplo n.º 2
0
        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);
        }