2014-04-04 35 views
5

Używam programu RestSharp do wywoływania usługi HTTP za pośrednictwem kwerendy. Usługa generuje dokument Word.Jak uzyskać dane odpowiedzi z RestSharp do pobrania dla użytkownika?

Kiedy zadzwonię do tej usługi, wygląda na to, że dokument Word jest zwracany we właściwości "Treść", ale staram się dowiedzieć, jak zwrócić tę zawartość użytkownikowi za pośrednictwem tradycyjnego okna pobierania jako dokument tekstowy dla oszczędność.

public ActionResult DocGen(string strReportId) 
    { 
     var client = new RestClient("http://localhost:88"); 

     var request = new RestRequest("DocGen/{id}", Method.GET); 
     request.AddUrlSegment("id", "1060"); // replaces matching token in request.Resource 

     // execute the request 
     //RestResponse response = (RestResponse) client.Execute(request); 
     IRestResponse response = client.Execute(request); 

     if (response.ErrorException != null) 
     { 
      const string message = "Error retrieving response. Check inner details for more info."; 
      var myException = new ApplicationException(message, response.ErrorException); 
      throw myException; 
     } 

     // Important and simple line. response.rawbytes was what I was missing. 
     return File(response.RawBytes,response.ContentType,"sample.doc"); 
    } 

Czy to powinno być działanie?

typu zawartości wydaje się poprawna tzn Word.11

Więc jak mogę zakodować uzyskać ten Response.Content powrotem do użytkownika?

Wielkie dzięki z góry.

EDYTOWANIE

Byłem bliżej rozwiązania niż myślałem. Moc do RestSharp Chyba !! Patrz wyżej. Teraz może być lepszy sposób, a ja mam wszelkie uszy na wszelkie sugestie, ale to jest miejsce, w którym obecnie jestem.

Odpowiedz

5

return Plik (response.RawBytes, response.ContentType, "sample.doc");

W przypadku, gdy ktoś może skorzystać.

+0

Witam, chcę zrobić to samo z .zip. Jakie były twoje zastosowania? – andandandand