之前返回Web API标头

时间:2013-12-11 16:49:28

标签: asp.net asp.net-web-api

使用ASP.NET Web API时,有没有办法提前返回响应标头?

一个例子: 假设我的控制器中有一个动作,它会返回所有公司的过滤器

    // GET api/companies/filter
    public Companies Get(string someFilter)
    {
        // some long operation (10 seconds)
    }

我想尽快返回标题,并且在执行此操作时,应该进行长操作,然后返回长操作的数据。

这样的事情可能吗?

1 个答案:

答案 0 :(得分:1)

您需要使用PushStreamContent来执行此操作

// GET api/companies/filter
public HttpResponseMessage Get(string someFilter)
{
    // some long operation (10 seconds)

    var pushContent = new PushStreamContent( (stream, content, ctx) =>
        {
            // Do long running thing here, writing to stream
        });


   return new HttpResponseMessage() {
      Content = pushContent
   }
}