在我看来,执行此操作的正确位置是AFURLSessionManager
在设置taskWillPerformHTTPRedirection
块中,但我不确定处理它的最佳方法。
目前,在我的AFHTTPSessionManager
子类中,我正在为所有请求全局设置重定向块,并且我知道我可以通过返回nil
此处来防止重定向:
- (void)setupRedirectBlock {
[self setTaskWillPerformHTTPRedirectionBlock:^NSURLRequest *(NSURLSession *session, NSURLSessionTask *task, NSURLResponse *response, NSURLRequest *request) {
return nil;
}];
}
...但我只需要对特定任务执行此操作,而且似乎没有办法从任务本身获取此信息。
我想我正在寻找某种用户信息字典或者我可以用来设置一个标志的东西,告诉这个方法要么 returnrequest
要么 return nil
。目前,看起来我必须对远离实际创建任务和路径的客户端中的响应/请求 URL 进行字符串比较。
所以这引出了一个问题,我是在违背惯例,还是真的没有更好的方法来逐个任务地拦截 AFNetworking 2.0 重定向?