IOS Не удается выполнить HTTP GET-запрос -Error Domain = NSURLErrorDomain Code = -1012
Я пытаюсь выполнить запрос HTTP Get, но я продолжаю получать ошибку Error Domain = NSURLErrorDomain Code = -1012. МОЙ код:
@try {
NSString *url = [[NSString alloc] initWithFormat:@"%@%@", @"http://api.mintchat.com/agent/chats/", agentSecret];
NSLog(@"******Agents Active List URL Str - %@", url);
NSURL *nsUrl = [NSURL URLWithString:url];
NSLog(@"******Agents Active List URL - %@", nsUrl);
// Make the request, returning a JSON response, just as a plain old string.
//NSData *jsonDataString = [[NSString stringWithContentsOfURL:[NSURL URLWithString:url] encoding:NSUTF8StringEncoding error: nil] dataUsingEncoding:NSUTF8StringEncoding];
NSError *error = nil;
NSMutableURLRequest *request = [[NSMutableURLRequest alloc] initWithURL:nsUrl];
[request setHTTPMethod:@"GET"];
[request setValue:API_ID forHTTPHeaderField:@"X-API-ID"];
[request setValue:API_SECRET forHTTPHeaderField:@"X-API-SECRET"];
NSHTTPURLResponse *response = nil;
NSData *urlData = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error];
NSLog(@"Response Code %d", [response statusCode]);
if ([response statusCode] >= 200 && [response statusCode] < 300) {
NSString *responseData = [ [NSString alloc]initWithData:urlData encoding:NSUTF8StringEncoding];
NSLog(@"Response ==> %@", responseData);
} else {
if (error)
NSLog(@"ERror : %@", error);
}
}@catch(NSException *e) {
NSLog(@"Exception - %@", e);
}
Я должен получить ответ в JSon, но поскольку все не работает, мы пытаемся с некоторым нормальным ответом. Я подтвердил, что заголовки будут добавлены в запрос. Мне нужно добавить оба значения в заголовки. Правильный URL тоже.
Результаты/logs, которые я получаю:
Код ответа 0
Ошибка: Error Domain = NSURLErrorDomain Code = -1012 "Операция не может быть завершена. (NSURLErrorDomain error -1012.)" UserInfo = 0x8abf470 { NSErrorFailingURLKey =....... NSErrorFailingURLStringKey =...... NSUnderlyingError = 0x8dafed0 "Операция не может быть выполнена. (KCFErrorDomainCFNetwork error -1012.)" }
Я также много раз искал эту ошибку, но бит не смог получить существенной помощи. Я также подтвердил доступ к веб-серверу api. С другим url также получаю те же результаты. Из 3-х URL-адресов я мог бы получить результаты 1-го URL-адреса, используя POST, но те другие 2 URL-адреса - просто не могли пройти через него.
Кто-нибудь может помочь мне с этой проблемой. Где идет не так? Почему не удается получить доступ к api.
Любая помощь высоко ценится.
Благодаря
Ответы
Ответ 1
Эта ошибка NSURLErrorUserCancelledAuthentication
Возврат при аннулировании асинхронного запроса на аутентификацию пользователем. Обычно это происходит при нажатии кнопки "Отмена" в диалоговом окне имени пользователя/пароля, а не в попытке пользователя для аутентификации.
Это означает, что вам нужна аутентификация для доступа к ресурсу, к которому вы пытаетесь получить доступ, без правильной подписи вашего запроса (неправильный агентSecret или API_ID или API_SECRET)
Ответ 2
Вы можете получить эту ошибку, нажав URL-адрес HTTPS (не HTTP) с сертификатом bad/expired с AFNetworking. (Chrome показывает сообщение "Ваше соединение не является приватным" при ударе по URL-адресу).
Ответ 3
В моем случае я просто установил Да для следующего флага http-подключения. allowInvalidSSLCertificate = YES, он начинает работать для запроса https get.
Ответ 4
Если это кому-то поможет, вы получите эту ошибку, когда сервер отправит код состояния 401
(несанкционированный).