4
我想知道是否可以重新运行失败的NSURLSessionDataTask。这是我遇到这个问题的背景。重新运行失败的NSURLSessionTask
我有一个Web服务对象,它使用AFNetworking 2.0来处理请求。在我的方法之一,我有这样的:
[HTTPSessionManager GET:path parameters:params success:^(NSURLSessionDataTask *task, id responseObject) {
} failure:^(NSURLSessionDataTask *task, NSError *error) {
//sometimes we fail here due to a 401 and have to re-authenticate.
}];
现在,有时GET请求失败,因为我的后端用户的身份验证令牌是。所以我想要做的是运行一个重新认证块来查看我们是否可以再次登录。这样的事情:
[HTTPSessionManager GET:path parameters:params success:^(NSURLSessionDataTask *task, id responseObject) {
} failure:^(NSURLSessionDataTask *task, NSError *error) {
if (task.response.statusCode == 401)
RunReAuthenticationBlockWithSuccess:^(BOOL success) {
//somehow re-run 'task'
} failure:^{}
}];
有没有什么办法再次启动任务?
谢谢!
非常有趣。不幸的是,如果您在请求HTTPBody中传递令牌,它将不起作用。 – Martin
Martin,请不要在请求正文中传递HTTP身份验证数据。这真的是错误的! – Segabond
非常感谢您的回答,它帮助了很多!但要小心,你回来的可能不是真正的'NSURLSessionDataTask' –