2015-06-11 86 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)); 

我希望这可以帮助别人。

干杯。