Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Turning HttpWebResponse into an HttpResponseMessage

I have the following action in an asp.net WebAPI controller:

public HttpResponseMessage GetCBERSS(string Site, string File, string User, string Password)
{
    string URLString = string.Format("https://{0}.rss.mycompany.com/{1}", Site, File);
    Uri uri = new Uri(URLString);
    CredentialCache cache = new CredentialCache();
    cache.Add(uri, "Basic", new NetworkCredential(User, Password));
    WebRequest r = WebRequest.Create(uri);
    r.Credentials = cache;
    r.ContentType = "application/rss+xml";
    IgnoreBadCertificates();
    HttpWebResponse result = (HttpWebResponse)r.GetResponse();
    return ???;
}

How can I convert the HttpWebResponse into an HttpResponseMessage?

like image 740
Metaphor Avatar asked Jul 02 '14 18:07

Metaphor


1 Answers

The best way to transform HttpWebResponse in HttpResponseMessage is create a new HttpResponseMessage :

using (var responseApi = (HttpWebResponse)request.GetResponse())
{
     var response = new HttpResponseMessage(responseApi.StatusCode);                    
     using (var reader = new StreamReader(responseApi.GetResponseStream()))
     {
         var objText = reader.ReadToEnd();
         response.Content = new StringContent(objText, Encoding.UTF8, "application/json");
     }
     return response;
}

like image 125
Igor Monteiro Avatar answered Oct 07 '22 08:10

Igor Monteiro