这里是我如何实现解决方案的总结。它是真正的快速代码,但请使用它作为伪代码,因为它可能不正确。
调用您需要调用的任何方法,并向该方法传递成功的回调(块或等效方法)和失败的回调
func action(URLString:String,method:Method,encoding:Encoding = .JSON,parameters:[String : AnyObject]?,success:(statusCode:Int, responseObject:AnyObject)->Void,failure:(statusCode:Int, error:NSError)->Void
)
里面的方法es。
/events
您将处理特定的故障情况,即状态码为401。if(r!.statusCode==ResponseCodes.HTTP_UNAUTHORIZED.rawValue){ loginAndAction(URLString, method: method, encoding: encoding, parameters: parameters, success: success, failure: failure)}else{
failure(statusCode: response.response!.statusCode, error:response.result.error!)
}
在这种特定情况下,您无需返回结果并调用失败回调,而是调用login()方法,该方法在必要的参数之后接受原始
success()
回调func loginAndAction(URLString:String,method:Method,encoding: Encoding,parameters:[String:AnyObject]?,success:(statusCode:Int, responseObject:AnyObject)->Void,failure:(statusCode:Int, error:NSError)->Void)->Void
如果认证成功
var d:[String:AnyObject] = response.result.value as! [String:AnyObject]self.authToken = d["access_token"] as! Stringaction(URLString, method: method,encoding:encoding, parameters: parameters, success: success, failure: failure)
此时,方法操作可以使用适当的工作令牌。
这应该每天仅发生一次(基于令牌到期),这是适用于oauth2
refresh_token调用的机制。



