- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
我正在尝试从我的 webapi 端点返回一个流,然后通过处理该流进行清理。
我预计这是正确的方式,但流当然会在返回之前被处理掉。
using(var stream = GetStream()){
var response = new HttpResponseMessage();
response.Content = new StreamContent(stream);
return response;
}
处理流的正确方法是什么?
(由于 MSDN 未提及 StreamContent 或其方法的行为,我的临时解决方案是将流的内容复制到字节数组并返回它。)
最佳答案
因为您唯一需要处理的资源是 HttpResponseMessage
的内容,所以您不必担心。该框架会为您处理。它将处理 HttpResponseMessage
,这将完成所有需要的处理。删除 using ,它应该可以正常工作。
HttpResponseMessage 将在处理时处理其内容。参见 .NET Core implementation
StreamContent 将在处理时处理其流。参见 .NET Core implementation of StreamContent
如果您需要处理 HttpResponseMessage 未处理的内容,您可以使用 request.RegisterForDispose
,如 Filip Woj 所述。
关于c# - 使用 StreamContent 时如何正确处理流,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38784434/
我有(几个)WebAPI 操作,它们从数据库(通过 EF)加载 QuickFix 日志并使用此私有(private)方法将它们作为 CSV 返回: private HttpResponseMessag
下面的代码片段成功地将单个文件 HttpPosts 到 WebAPI。我想扩展它以构建包含多个文件的 StreamContent(类似于 Fiddler 多文件帖子)。 我知道我应该在 StreamC
我正在使用 Microsoft Http 客户端库从 Windows Phone 8 向服务器发出多部分请求。它包含一个具有 json 字符串的字符串内容和一个具有图像流的流内容。现在我得到状态 OK
我正在尝试从我的 webapi 端点返回一个流,然后通过处理该流进行清理。 我预计这是正确的方式,但流当然会在返回之前被处理掉。 using(var stream = GetStream()){
尝试获取一个 blob 并将其变成流媒体内容。我得到了字节,它们确实被转换成 ByteArrayInputStream 并且我正在返回 StremedContent 图像,但我一直得到这个:
我想将流发布到 HTTP 服务器(由 OWINHost 托管),请参见下面的代码片段。当我使用 StringContent 传输 String 时,它工作正常。但是,如果我想传输带有 StreamCo
这可能在网上某处有解释,但我找不到。 StreamContent 究竟是什么? (我试图理解 C#,但我无法正确理解一些 WebAPI 示例,因为我不理解 StreamContent 是什么。 一个完
我正在实现 MVC4 + WebAPI version of the BluImp jQuery File Upload在我最初的尝试中一切都很好,但我试图确保在下载非常大的文件 (~2GB) 时充分
考虑下面的这个小代码: var client = new HttpClient(); var multiForm = new MultipartFormDataContent(); var str =
下面的 content.Add 行是否会使对象无法正确处理?如果是这样,处理此问题的正确方法是什么。 public string UploadGameToWebsite(string filenam
在 ASP.NET webapi 中,我向客户端发送了一个临时文件。我打开一个流来读取文件并在 HttpResponseMessage 上使用 StreamContent。客户端收到文件后,我想删除这
我在 ASP.NET Web Api 2.x Controller 中使用 StreamContent 的实例提供文件服务类型。请求文件时,其 blob 位于数据库中,并打开 blob 流。然后将 b
我需要从网络服务返回存储在磁盘上的图像。 在我的 Controller 中,我执行一些搜索操作并发送文件。这是我的代码。 public HttpResponseMessage Get([FromUri
我尝试从 Web API 返回 excel 文件,但我收到的是 JSON 响应,而不是下载的文件。 using (var excel = new ExcelPackage()) {
我尝试从 Web API 返回 excel 文件,但我收到的是 JSON 响应,而不是下载的文件。 using (var excel = new ExcelPackage()) {
我在安全服务器上存储了大量图像,其中一些图像需要在面向世界的门户网站上显示。门户网站的服务器位于 DMZ 内,DMZ 允许请求进入但阻止直接请求移动到安全域。这些图像使用 SOLR 进行编目,可以通过
我在我的网站上设置了一个 ASP.Net Web API,用于与 WPF 桌面应用程序通信。我在 API 上设置了一个操作来从客户端应用程序接收二进制文件。但是,在某些(看似随机的)情况下,当我从请求
我们已将一个项目从 WCF 移植到 Web API (SelfHost),在此过程中,我们注意到在提供 Web 应用程序时速度大幅下降。现在是 40-50 秒,而之前是 3 秒。 我通过使用以下 Co
以下代码读取整个给定 Stream的数据在作为网络请求发送之前进入内存,而不是在较小的块中读取和发送数据。例如,如果流产生 2 GB 数据,则代码将在开始发送请求之前将所有 2 GB 数据读入内存缓冲
我查遍了整个网络,但找不到答案。我们的应用程序中有两种方法: a) 第一个返回 HttpResponseMessage,其中包含 1 个文件。它使用StreamContent。 response.C
我是一名优秀的程序员,十分优秀!