2014-04-04 7 views
5

Sto usando RestSharp per chiamare un servizio HTTP tramite una Querystring. Il servizio genera un documento di Word.Come ottenere i dati di risposta da RestSharp per il download per l'utente?

Quando chiamo questo servizio, sembra che un documento Word venga restituito nella proprietà "Contenuto", ma mi sforzo di capire come restituire questo contenuto all'utente tramite la tradizionale finestra di download come documento word per Salvataggio.

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

Dovrebbe essere un'azione?

Il tipo di contenuto sembra corretto cioè Word.11

Allora, come faccio codifico ottenere questo Response.Content indietro per l'utente?

Molte grazie in anticipo.

EDIT

mi era più vicino alla soluzione di quanto pensassi. Potere a RestSharp immagino !! Vedi sopra. Ora potrebbe esserci un modo migliore, e io sono a tutti gli orecchi per qualsiasi suggerimento, ma questo è il posto in cui sono attualmente.

risposta

5

file di ritorno (response.RawBytes, response.ContentType, "sample.doc");

Nel caso qualcuno possa beneficiare.

+0

Ciao, voglio fare lo stesso con un .zip. Quali erano i tuoi usi ?? – andandandand