如何设置HttpHeaders的分隔符?

时间:2014-12-23 11:50:59

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

在我的WebApi应用程序中,当多个标题具有相同名称时,无论如何都要获取原始数据?

当传入多个具有相同名称的Http标头时,它们会以','作为分隔符连接。 HttpHeaders下的System.Net.Http.Headers类似乎是罪魁祸首。

我的一些标题包含逗号,因此使用逗号作为分隔符并不理想。

我想要将分隔符更改为一些不常见的(我选择的)或者能够在它们加入之前访问这些值。

有什么想法吗?

提前致谢。

1 个答案:

答案 0 :(得分:1)

仔细检查规范,看起来逗号是一个保留字符,用于在同一字段名称下指定多个标题字段值:http://www.w3.org/Protocols/rfc2616/rfc2616-sec4.html#sec4.2

  

具有相同字段名称的多个消息头字段可以是   当且仅当整个字段值出现在消息中时出现   标题字段被定义为以逗号分隔的列表[即,#(值)]。   必须可以将多个标题字段合并为一个   " field-name:field-value"对,不改变语义   消息,通过将每个后续字段值附加到第一个,每个   用逗号分隔。头字段具有相同的顺序   因此,接收字段名称对于解释是重要的   组合字段值,因此代理不得改变   转发邮件时这些字段值的顺序。“