如何删除NSMutableURLRequest中的标头?

时间:2011-12-13 06:01:04

标签: iphone objective-c ios nsurlrequest nsmutableurlrequest

如何发出不包含标题字段的请求?请求从头开始发送到我自己的服务器实现,这不关心头字段。该请求最多只包含一个帖子正文。如果我错过了合乎逻辑的东西,请告诉我。

请不要告诉我有关ASIHTTPRequest的信息。谢谢。

4 个答案:

答案 0 :(得分:10)

由于我想删除NSMutableURLRequest上的特定标头,我刚刚发现调用setValue:forHTTPHeaderField:使用nil值实际上将其删除。

Apple没有记录,但似乎很合乎逻辑。

答案 1 :(得分:2)

我发现对于某些标题字段(“User-Agent”就是其中之一),使用

将标题值设置为nil
[request addValue:nil forHTTPHeaderField:@"User-Agent"];

实际上并不删除标题字段,而是将其设置为默认值!

如果您想要实际删除内容,只需使用

将值设置为空字符串即可
[request addValue:@"" forHTTPHeaderField:@"User-Agent"];

答案 2 :(得分:2)

对我来说代码

[request addValue:@"" forHTTPHeaderField:@"User-Agent"];

仅添加空字符串而不是清除User-Agent。 相反,使用setValue修复它:

[request setValue:@"" forHTTPHeaderField:@"User-Agent"];

答案 3 :(得分:1)

  1. 如果您控制服务器实施,为什么不忽略它们呢?

  2. [request setAllHTTPHeaderFields:[NSDictionary dictionary]]是否有效?

  3. 如果#2不起作用,请尝试创建自己的子类,该子类始终从allHTTPHeaderFields方法返回空字典,并从nil方法返回valueForHTTPHeaderField:。但NSURLConnection可能会复制您的请求,因此您可能还必须覆盖copyWithZone: