【问题标题】:How does ASP.NET Web API "sort" Request Headers into Header Collections?ASP.NET Web API 如何将请求标头“排序”到标头集合中?
【发布时间】:2013-07-04 10:57:07
【问题描述】:

我试图在 ASP.NET Web API 的自定义委托处理程序中读取 Content-Type 标头的值。当我查询request.Headers 集合时,标题值不在其中。但是,它包含在request.Content.Headers 中。其他以Content- 开头的非标准标头(例如Content-Test)仅在request.Headers 中可用;另一方面,Content-Length 只能在 request.Content.Headers 中找到,就像 Content-Type 一样。

假设 Web API 将所有已知的内容标头放入 request.Content.Headers 集合而将所有其他标头放入 request.Headers 是否正确?

【问题讨论】:

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


    【解决方案1】:

    HttpClient 最初就是这样设计的。请求和响应与实际内容是分开的,因此与内容相关的 cookie 进入 HttpContent.Headers 而不是 HttpRequestMessage.Headers。将内容标头与内容保留是分离关注点的好方法,另一方面,获取内容标头则比较麻烦。

    【讨论】:

    • 好吧,这就是我尝试后的假设。不过,我不得不承认,我发现在 HttpRequestMessage.Headers 中找不到所有标题有点违反直觉。
    • 其实想想也是合乎逻辑的。请求和响应具有不同的标头,但它们都共享相同的内容标头。
    • 没错,如果你这样说确实有道理。感谢您的快速回答!
    猜你喜欢
    • 2015-07-27
    • 1970-01-01
    • 2013-10-24
    • 2016-03-12
    • 2019-11-26
    • 2012-05-02
    • 1970-01-01
    • 2012-06-09
    • 2011-10-14
    相关资源
    最近更新 更多