2015-06-11 163 views
1

我有一個使用HttpResponseMessage返回'.xls'文件的API。我想要做的是獲取該文件並將其附加到我發送的電子郵件中。HttpResponseMessage.Content作爲電子郵件的附件

請記住,我無法更改API實現,因此,響應將始終爲HtppResponseMessage

+1

在這種情況下,你不能像附件獲得這個文件。你可以做什麼:它只是在你的電子郵件中寫入鏈接到頁面,在頁面中調用這個API函數 – David

+0

有一個到實際網頁的鏈接,用戶應該點擊可用的按鈕進行下載(它有這個功能),它是不適合我:(:) –

+0

如果您無法更改API - 您無法將HttpResponseMessage附加到電子郵件中 – David

回答

1

好吧,顯然有解決我的問題。我必須做的是從API的HttpResponseMessage獲得HttpContent作爲Stream。之後,所有的過程都是小菜一碟。

以下是解決方案。它效果很好。

HttpResponseMessage response = _service.GetAPIResponse(...); 
Stream data = response.Content.ReadAsStreamAsync().Result; 

var mailMessage = new MailMessage() 
mailMessage.Attachments.Add(new Attachment(data, response.Content.Headers.ContentDisposition.FileName)); 

我希望這可以幫助別人。

乾杯。