当蒸汽作为HttpResponseMessage.Content发送后关闭

本文关键字:Content HttpResponseMessage | 更新日期: 2023-09-27 18:05:45

我有一个Web API服务,将文件发送回WinForm客户端,我这样做:

            var fileResponse = new HttpResponseMessage(HttpStatusCode.OK);
            fileResponse.Content = new StreamContent(zipStream);
            fileResponse.Content.Headers.ContentType = new MediaTypeHeaderValue("application/octet-stream");
            return fileResponse;

现在我注意到我不能关闭蒸汽(zipStream在这种情况下),因为内容将不会被适当填充,因为StreamContent使用流作为引用。

现在我的问题是,何时以及是否会关闭流?

谢谢。

当蒸汽作为HttpResponseMessage.Content发送后关闭

使用block可以在适当的时候释放流。

using (var zipStream = ....)
        {
            Test(zipStream);
        }
public HttpResponseMessage Test(Stream zipStream)
    {
        var fileResponse = new HttpResponseMessage(HttpStatusCode.OK);
        fileResponse.Content = new StreamContent(zipStream);
        fileResponse.Content.Headers.ContentType = new MediaTypeHeaderValue("application/octet-stream");
        return fileResponse;
    }