У меня есть приложение iOS, использующее AFNetworking для сетевых вызовов. Все работает отлично, за исключением случаев, когда я пытаюсь захватить код состояния 401. Для возврата вызова с ответом требуется всего 60 секунд. Есть ли какие-либо настройки или что-то, что может вызвать это? Каждый успешный вызов возвращается мгновенно. Я также попытался запустить этот код через curl, и 401 возвращает мгновенно. Вот код, который я использую:AFNetworking занимает 60 секунд, чтобы вернуться с кодом статуса 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];
Хорошо, я попробую. Но я все еще смущен, почему это будет тайм-аут? Он должен немедленно вернуться с 401, потому что сервер отвечает, но с кодом состояния ошибки. Как я могу получить его для немедленного возвращения, не испортив тайм-аут? – Bobbake4