为什么HttpRequestMessage.Content.Headers不包含与请求关联的标头?

时间:2016-07-12 22:52:16

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

我有一个Web API应用程序,我们将HttpRequestMessage.Content转发给处理请求的其他方法。所需的一组值是作为请求的一部分发送的标头。

当我查看HttpRequestMessage.Headers.headerStore时,我看到发送给请求的所有标头。但是当我查看HttpRequestMessage.Content.Headers.headerStore时,我只看到一些默认标题。

为什么HttpRequestMessage.Content.headerStore包含与请求关联的所有标头?

1 个答案:

答案 0 :(得分:1)

请求标头和内容标头有不同的用途。

虽然请求标头包含有关请求本身和客户端(调用方)的信息,但内容标头描述“实体”或其元数据。

查看示例http请求:

            POST /some/url HTTP/1.1
            Host: someHost
            User-Agent: Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2228.0 Safari/537.36
request     Accept: application/json, text/plain, */*
headers     Accept-Encoding: gzip,deflate
            Connection: keep-alive
            Referer: url
            Content-Type: multipart/form-data; boundary=----------564564546545645
            Content-Length: 462560

            ------------564564546545645
content     Content-Disposition: form-data; name="file"; filename="1.png"
headers     Content-Type: image/png

            .PNG
            ......................;
            ------------564564546545645