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