是否可以在不使用方法
的情况下修改NSHTTPURLResponse上的标头initWithURL:statusCode:HTTPVersion:headerFields:
创建新的自定义NSHTTPURLResponse
答案 0 :(得分:3)
响应对象返回名为allHeaderFields
的NSDictionary。如果您可以直接修改该字典,那将是理想的,但它不是NSMutableDictionary。这意味着你只能做以下两件事之一:
创建当前allHeaderFields
字典的可变副本,并在新的NSHTTPURLResponse中使用它(我知道你说你不想创建新的NSHTTPURLResponse,但它是最简单的解决方案,你从原始响应中获取其他值,创建一个使用原始allHeaderFields
的值初始化的NSMutableDictionary,编辑您需要的字段以用于任何欺骗,并将其插入到新响应中。 )
否则,您可以实现NSHTTPURLResponse的自定义子类,该子类可以修改allHeaderFields对象。很好的答案,详细说明了如何做到这一点here的基础知识,但似乎有点迂回。只有在需要覆盖大量的HTTP标头字段时才会使用它。