2014-07-02 14 views
9

Mam następujące działania w kontroler asp.net WebAPI:Włączanie HttpWebResponse się z HttpResponseMessage

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

Jak mogę przekonwertować HttpWebResponse się z HttpResponseMessage?

+1

Zobacz tę drugą odpowiedź: http://stackoverflow.com/a/11125737/507793 – Matthew

Odpowiedz

4

Najlepszym sposobem, aby przekształcić HttpWebResponse w HttpResponseMessage jest utworzyć nową HttpResponseMessage:

 var response = new HttpResponseMessage(HttpStatusCode.OK); 

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

Co o nagłówkach, które były częścią responseApi? Czy istnieje jakakolwiek konieczność ich zachowania? Czy istnieje ogólny sposób na obsłużenie tego dla wszystkich typów zawartości, zamiast na twardym kodowaniu do aplikacji/json? – NStuke

Powiązane problemy