首页 > 解决方案 > NSURLRequest isEqual:受 allHTTPHeaderFields 影响

问题描述

我比较了两个 NSURLRequest 对象,它们的 URL 和标头相同,但isEqual:返回NO,所以调试:

当我po [taskRequest isEqual:request]的结果是NOpo request.allHTTPHeaderFields检查是否相等,那么po [taskRequest isEqual:request]结果是YES️</p>

我发现如果使用addValue:forHTTPHeaderField:而不是setValue:forHTTPHeaderField:,它总是返回YES

我尝试在操场Xcode 版本 10.2 (10E125)中验证:

let request1 = NSMutableURLRequest(url: URL(string: "https://api.abc.com")!)
let request2 = NSMutableURLRequest(url: URL(string: "https://api.abc.com")!)

request1.setValue("1", forHTTPHeaderField: "1")
request2.setValue("1", forHTTPHeaderField: "1")

request1 == request2 // true

request2.allHTTPHeaderFields // ["1": "1"]

request1 == request2 // false

我希望 isEqual: 无论我是否使用了该allHTTPHeaderFields方法,结果总是正确的

标签: foundation

解决方案


推荐阅读