使用ASP.NET Web API时,有没有办法提前返回响应标头?
一个例子: 假设我的控制器中有一个动作,它会返回所有公司的过滤器
// GET api/companies/filter
public Companies Get(string someFilter)
{
// some long operation (10 seconds)
}
我想尽快返回标题,并且在执行此操作时,应该进行长操作,然后返回长操作的数据。
这样的事情可能吗?
答案 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
}
}