Ejemplo n.º 1
0
        public static HttpResponsePacket ToHttpResponsePacket(this HttpResponseMessage response)
        {
            var packet = new HttpResponsePacket();

            foreach (var hdr in response.Headers)
            {
                packet.AddHttpHeader(hdr);
            }

            if (response.Content != null)
            {
                foreach (var hdr in response.Content.Headers)
                {
                    packet.AddHttpHeader(hdr);
                }
            }

            packet.Version = response.Version.ToString();
            packet.StatusCode = (int)response.StatusCode;
            packet.StatusDescription = response.ReasonPhrase;

            if (response.Content != null)
            {
                using (MemoryStream ms = new MemoryStream())
                {
                    response.Content.CopyToAsync(ms).Wait();
                    packet.Content = ms.ToArray();
                }
            }

            return packet;
        }