【问题标题】:Serving data with "transfer-encoding: chunked" on an ApiController in C#' WebAPI在 C# WebAPI 中的 ApiController 上使用“传输编码:分块”提供数据
【发布时间】:2015-10-02 00:22:50
【问题描述】:

我需要使用 ApiController 提供 分块传输 编码数据。因为我无法访问 HttpContextHttpRequest,所以我有点不知道在哪里写入响应以及在哪里刷新它。

设置如下:

public class MyController : ApiController
{
   [Route("testing")]
   [HttpGet]
   public string Get()
   {
       ...
       return <response object ot HttpResponseMessage
   }
}

我想我可能使用了错误的基类/框架/概念? 非常感谢!

【问题讨论】:

    标签: c# asp.net-web-api chunked-encoding


    【解决方案1】:

    确实可以访问上下文和请求。您需要访问响应:

    public string Get()
    {
        ActionContext.Response.Headers.TransferEncodingChunked = true;
        // ...
    }
    

    【讨论】:

    • 是的,但您需要小心,因为在使用代理分块时,某些版本的框架存在错误。请参阅 stackoverflow.com/questions/16736233/…aspnetwebstack.codeplex.com/workitem/1124 。这显然已在最新版本中修复,但至少有人报告该问题仍然存在。但不确定 ASP.NET 5。
    • 我实际上得到了一个空的ActionContext.Response。但是,我可以创建一个新的 HttpResponseMessage 并返回它
    猜你喜欢
    • 2019-04-10
    • 2014-08-28
    • 1970-01-01
    • 1970-01-01
    • 2023-03-16
    • 1970-01-01
    • 1970-01-01
    • 2017-07-22
    • 2011-01-17
    相关资源
    最近更新 更多