创建后如何修改AFHTTPRequestOperation
标题?在API请求返回401
的情况下,我需要刷新访问令牌并调整每个AFHTTPRequestOperation
的标头,并使用更新的访问重试相同的请求操作令牌。
以下是我处理由于当前正在刷新访问令牌而排队的请求的代码。收到新的访问令牌时,将调用此方法。
下面的方法有效,但创建操作请求的新变量并调整变量的标题也会改变原始请求,这似乎很奇怪。
var authManager = AFOAuth2Manager()
func processHeldRequests() {
for operation: AFHTTPRequestOperation in heldRequests {
var token = tokenManager.getToken()
println("adjusting held operation's request header authorization to new token \(token!)")
var operationRequest: NSMutableURLRequest = operation.request as! NSMutableURLRequest
operationRequest.setValue("Bearer \(token!)", forHTTPHeaderField: "Authorization")
authManager.operationQueue.addOperation(operation)
}
heldRequests.removeAll(keepCapacity: false)
}