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; }