加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

为什么在ASP.NET Web API中从请求中删除内容范围标题?

发布时间:2020-12-15 22:44:05 所属栏目:asp.Net 来源:网络整理
导读:我正在创建一个可以以分块方式上传文件的API. 通过这个Stackoverflow question and answer,内容范围标题似乎是最适合的. 但是,在控制器操作中,标题已经被剥离,所以我无法访问它. 当我使用’range’标头时,它在请求头集合中可用. 任何人为什么从请求中剥离Con
我正在创建一个可以以分块方式上传文件的API.

通过这个Stackoverflow question and answer,内容范围标题似乎是最适合的.

但是,在控制器操作中,标题已经被剥离,所以我无法访问它.
当我使用’range’标头时,它在请求头集合中可用.

任何人为什么从请求中剥离Content-Range?

解决方法

它没有被剥离.在Request.Content.Headers中查找它.看起来他们将标题与HTTP / 1.1规范对齐 – 将实体标题移动到Request.Content.Headers.
我在一个示例请求中尝试过,并在那里找到它.

在阅读了RFC 2616的相关章节之后,我发现了这个变化.最近我一直在翻译,因为主要作者Fielding也是REST架构风格的发明者,而我正在尝试使用ASP.NET Web API.

我意识到“请求”,“响应”,“一般”(用于请求和响应但不是实体相关)和“实体”头之间有区别.

看起来好像ASP.NET团队修改了类模型以更好地镜像RFC,创建了HttpHeaders的三个子类:

> HttpRequestHeaders用于“5.3请求头字段”和“4.5一般”
标题字段“
> HttpResponsHeaders for“6.2 Response Header Fields”和“4.5 General”
标题字段“
>“7.1实体头字段”的HttpContentHeaders

这些是MSDN中三个类别的逐字描述(链接是我的):

> HttpRequestHeaders:
代表Request Headers as defined in RFC 2616的收藏.
> HttpResponseHeaders:
代表Response Headers as defined in RFC 2616的收藏.
> HttpContentHeaders:
表示Content Headers as defined in RFC 2616的集合.Content-Range是一个实体头,所以ContentRange在HttpContentHeaders中.

请注意,虽然MSDN类的描述有点错误 – RFC中没有Content Headers定义,但很明显,它们意味着实体头.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读