我有一个使用 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/