使用AFNetworking 2.0拦截和阻止重定向的推荐方法是什么?

con*_*are 2 networking redirect ios afnetworking-2 nsurlsessiontask

在我看来AFURLSessionManager,在设置taskWillPerformHTTPRedirection块时,适当的地方是,但我不确定处理它的最佳方法.

目前,在我的AFHTTPSessionManager子类中,我正在为所有请求全局设置重定向块,我知道我可以通过返回nil来阻止重定向:

- (void)setupRedirectBlock {
    [self setTaskWillPerformHTTPRedirectionBlock:^NSURLRequest *(NSURLSession *session, NSURLSessionTask *task, NSURLResponse *response, NSURLRequest *request) {
        return nil;
    }];
}
Run Code Online (Sandbox Code Playgroud)

...但我只需要对特定任务执行此操作,并且似乎没有办法从任务本身获取此信息.

我想我正在寻找某种用户信息字典或者我可以用来设置一个标志告诉这个方法返回request或返回nil.目前,我似乎必须对客户端中的响应/请求URL进行字符串比较,因为它远离实际创建任务和路径的位置.

所以这就引出了一个问题,我是在与常规进行对抗,还是没有更好的方法来逐个任务地拦截AFNetworking 2.0重定向?

mat*_*ttt 6

setTaskWillPerformHTTPRedirectionBlock是拦截重定向的最佳方式.会话管理器负责根据与任务关联的请求确定何时或何时不阻止重定向.在大多数情况下,请求的路径应该是足够的确定,但是用户可以另外在自定义请求头字段中标记信息.