是否可以使用相同的密钥向NSMutableURLRequest添加多个标头?
我只是请求标题中存在多个具有相同键的标题,我知道,NSMutableURLRequest的setHTTPHeaderField只会设置一些字段,但无法将重复项添加到标题中,无论如何都要实现这个?感谢。
答案 0 :(得分:1)
没有-setHTTPHeaderField
方法,您可能意味着-setValue:forHTTPHeaderField:
。此方法始终替换现有值。但你可以做到。首先,您必须知道,在某些情况下才允许使用具有相同名称的多个标头字段:
具有相同字段名称的多个消息头字段可以是 当且仅当整个字段值出现在消息中时出现 标题字段被定义为以逗号分隔的列表[即,#(值)]。 必须可以将多个标题字段合并为一个 " field-name:field-value"对,不改变语义 消息,通过将每个后续字段值附加到第一个,每个 用逗号分隔。
RFC2616,4.2
因此,a: 1
,a: 2
必须具有等效的a: 1, 2
。这是什么
-addValue:forHTTPHeaderField:
确实:
此方法提供了以递增方式向标头字段添加值的功能。如果先前为指定字段设置了值,则使用相应的字段分隔符将提供的值附加到现有值。对于HTTP,分隔符是逗号。
所以你可以这样做:
[request addValue:@1 forHTTPHeaderField:@"a"];
[request addValue:@2 forHTTPHeaderField:@"a"];