gpt4 book ai didi

asp.net - Web API - 处理 HEAD 请求并指定自定义 Content-Length

转载 作者:行者123 更新时间:2023-12-02 06:55:30 25 4
gpt4 key购买 nike

我有 API-Controller 通过 GET-Requests 提供文件。我正在使用 PushStreamContentResponse 并且效果很好。

我还可以在响应对象上设置 Content-Length-Header。

现在我也想支持 HEAD-Requests。我试过http://www.strathweb.com/2013/03/adding-http-head-support-to-asp-net-web-api/虽然这可能有效,但我需要一个不需要实际处理请求的解决方案:检索文件并流式传输它很昂贵,但获取元数据(长度等)实际上是无操作的。

但是,当我尝试设置 Content-Length header 时,它将被 0 覆盖。

我添加了请求跟踪,我看到我的处理程序返回的消息显示了正确的 URL、Content-Disposition 和 Content-Length。

我还尝试使用自定义 HttpResponse 并实现 TryComputeLength。虽然确实调用了此方法,但结果在管道中的某个点被丢弃。

有没有办法使用 Web API 来支持这一点?

最佳答案

虽然这在 2015 年可能是个问题,但今天(2017 年以后),您可以这样做

[RoutePrefix("api/webhooks")]
public class WebhooksController : ApiController
{
[HttpHead]
[Route("survey-monkey")]
public IHttpActionResult Head()
{
return Ok();
}

[HttpPost]
[Route("survey-monkey")]
public IHttpActionResult Post(object data)
{
return Ok();
}
}

两个 HEAD api/webhooks/survey-monkeyPOST api/webhooks/survey-monkey工作得很好。
(这是我刚刚为实现 SurveyMonkey 的 webhook 所做的 stub )

关于asp.net - Web API - 处理 HEAD 请求并指定自定义 Content-Length,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32102800/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com