Iphone AFNetworking需要60秒才能返回401状态码?

Iphone AFNetworking需要60秒才能返回401状态码?,iphone,objective-c,ios,afnetworking,Iphone,Objective C,Ios,Afnetworking,我有一个iOS应用程序,使用AFNetworking进行网络呼叫。一切都很好,除了当我试图捕捉401状态代码时。呼叫返回并有响应通常需要大约60秒。是否有任何设置或东西会导致这种情况?每次成功的呼叫都会立即返回。我还尝试通过curl运行这段代码,401立即返回。以下是我正在使用的代码: AFHTTPRequestOperation *operation = [[AFHTTPRequestOperation alloc] initWithRequest:request];

我有一个iOS应用程序,使用AFNetworking进行网络呼叫。一切都很好,除了当我试图捕捉401状态代码时。呼叫返回并有响应通常需要大约60秒。是否有任何设置或东西会导致这种情况?每次成功的呼叫都会立即返回。我还尝试通过curl运行这段代码,401立即返回。以下是我正在使用的代码:

        AFHTTPRequestOperation *operation = [[AFHTTPRequestOperation alloc] initWithRequest:request];

        __weak AFHTTPRequestOperation *_operation = operation;

        [operation setCompletionBlock:^{
                    //It takes 60 seconds to get to this line if a 401 is encountered
            DDLogInfo(@"Response body: %@", [_operation responseString]);

            if(_operation.response.statusCode == 401) {
                DDLogInfo(@"Expired Auth Token");
            }

            NSError *error = [_operation error];        
            NSData *responseData = [_operation responseData];

            if(responseData == nil && error == nil)
                error = [NSError errorWithDomain:isDevMode ? DEV_SERVICE_BASE_URL : SERVICE_BASE_URL code:-1 userInfo:nil];

            callback(error, responseData);
        }];

        [operation start];   

您需要使用符合需要的超时值初始化NSURLRequest

NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:inURL 
                                                       cachePolicy:NSURLRequestReturnCacheDataElseLoad 
                                                   timeoutInterval:10.0];
请参阅文档


然后,使用已初始化的
NSMutableURLRequest
请求初始化AFNetworking的
AFHTTPRequestOperation

当请求以代码401失败时,调用操作的失败块,您尚未设置该块。对您的操作使用以下AFHTTPRequestOperation方法,将立即调用故障块

- (void)setCompletionBlockWithSuccess:(void (^)(AFHTTPRequestOperation *operation, id responseObject))success
                              failure:(void (^)(AFHTTPRequestOperation *operation, NSError *error))failure;

抱歉,没有注意到此线程已存在6个月!无论如何,对于那些仍然面临这个问题的人来说,答案仍然是。

好吧,我会试试看。但我仍然很困惑,为什么这会是一个暂停呢?它应该立即返回401,因为服务器正在响应,但带有错误状态代码。我怎样才能让它在不影响超时的情况下立即返回?你能给出一个如何使用它的示例吗?阅读本文,这是非常不言自明的->:在github上快速搜索给出了一个很好的示例->希望有帮助。。