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

本文关键字:关联 请求 包含 HttpRequestMessage Content Headers 为什么 | 更新日期: 2023-09-27 17:56:34

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

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

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

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

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

虽然请求标头

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

看看示例 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