iphone - AFNetworking 需要 60 秒才能返回 401 状态代码?

标签 iphone objective-c ios afnetworking

我有一个使用 AFNetworking 进行网络调用的 iOS 应用程序。除了当我 try catch 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文档。

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

关于iphone - AFNetworking 需要 60 秒才能返回 401 状态代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11124480/

相关文章:

iphone - 像ios7通知中心一样的storyboard分段控制

objective-c - 为什么要保留静态变量?

从像素密度 (ppi) > 300ppi 的相机捕获的 iOS 图像

ios - 在 shouldChangeCharactersIn 中将文本设置为 UITextField 后,光标移至末尾

ios - 在 Cocoa Touch/UIKit 上,如何从后台线程检测用户界面的变化?

iphone - 未调用推送通知委托(delegate)回调

iPhone - 暂停时应用程序退出

ios - 无法找到 `GoogleSymbolUtilities (~> 1.1)` 所依赖的 `FirebaseAnalytics` 规范

iphone - 在多个类之间共享 UILabel 中的相同文本

ios - 如何在ios中通过twitter授权用户登录