HttpResponseMessage CreateResponseMessage (HttpWebResponse wr, HttpRequestMessage requestMessage, CancellationToken cancellationToken)
{
var response = new HttpResponseMessage (wr.StatusCode);
response.RequestMessage = requestMessage;
response.ReasonPhrase = wr.StatusDescription;
response.Content = new StreamContent (wr.GetResponseStream (), cancellationToken);
var headers = wr.Headers;
for (int i = 0; i < headers.Count; ++i) {
var key = headers.GetKey(i);
var value = headers.GetValues (i);
HttpHeaders item_headers;
if (HttpHeaders.GetKnownHeaderKind (key) == Headers.HttpHeaderKind.Content)
item_headers = response.Content.Headers;
else
item_headers = response.Headers;
item_headers.TryAddWithoutValidation (key, value);
}
requestMessage.RequestUri = wr.ResponseUri;
return response;
}