如何使用ASP.NET Web API;排序“;将头请求到头集合中?

如何使用ASP.NET Web API;排序“;将头请求到头集合中?,asp.net,asp.net-web-api,dotnet-httpclient,Asp.net,Asp.net Web Api,Dotnet Httpclient,我试图在ASP.NET Web API中的自定义委托处理程序中读取内容类型头的值。当我查询request.Headers集合时,标题值不在其中。但是,它包含在request.Content.Headers中。其他以Content-开头的非标准标题(如Content Test)仅在request中提供内容长度,只能在请求.Content.Headers中找到,就像内容类型一样 假设Web API将所有已知的内容头放入request.content.headers集合,同时将所有其他头放入reque

我试图在ASP.NET Web API中的自定义委托处理程序中读取
内容类型
头的值。当我查询
request.Headers
集合时,标题值不在其中。但是,它包含在
request.Content.Headers
中。其他以
Content-
开头的非标准标题(如
Content Test
)仅在
request中提供<另一方面,代码>内容长度
,只能在
请求.Content.Headers
中找到,就像
内容类型
一样


假设Web API将所有已知的内容头放入
request.content.headers
集合,同时将所有其他头放入
request.headers
,这是否正确?

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

好的,这是我在尝试此方法后的假设。我不得不承认,我发现在
HttpRequestMessage.headers
中找不到所有的头有点违反直觉。实际上,如果你想一想,这是合乎逻辑的。请求和响应有不同的头,而它们都共享相同的内容头。是的,如果这样说是有意义的。谢谢你的快速回答!