2014-04-04 14 views
5

Tôi đang sử dụng RestSharp để gọi một dịch vụ HTTP qua Chuỗi truy vấn. Dịch vụ tạo ra một tài liệu Word.Cách nhận dữ liệu phản hồi từ RestSharp để tải xuống cho người dùng?

Khi tôi gọi dịch vụ này, có vẻ như tài liệu Word đang được trả lại trong thuộc tính "Nội dung", nhưng tôi cố gắng tìm cách trả lại nội dung này cho người dùng qua cửa sổ tải xuống truyền thống dưới dạng tài liệu từ tiết kiệm.

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

Đây có phải là hành động không?

Loại nội dung có vẻ chính xác, ví dụ: Word.11

Vậy làm cách nào để mã này nhận được phản hồi này.Content trả lại cho người dùng?

Rất cám ơn trước.

EDIT

Tôi đã gần với giải pháp hơn tôi nghĩ. Sức mạnh để RestSharp tôi đoán !! Xem ở trên. Bây giờ có thể có một cách tốt hơn, và tôi là tất cả các tai cho bất cứ đề xuất nào, nhưng đây là nơi tôi đang ở hiện tại.

Trả lời

5

trả về Tệp (phản hồi.RawBytes, response.ContentType, "sample.doc");

Trong trường hợp bất kỳ ai cũng có thể hưởng lợi.

+0

Xin chào, tôi muốn thực hiện tương tự với một tệp .zip. Những gì đã được sử dụng của bạn ?? – andandandand

Các vấn đề liên quan