iOS无法执行HTTP GET请求 – 错误域= NSURLErrorDomain代码= -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得到回应,但由于事情不能正常工作,所以我们正在尝试一些正常的回应。 我确认了将Headers添加到请求中。 我需要将这两个值添加到标题。 该url也是适当的。

我得到的结果/日志是:响应代码0

错误:错误域= NSURLErrorDomain代码= -1012“该操作无法完成。(NSURLErrorDomain错误-1012。)”UserInfo = 0x8abf470 {NSErrorFailingURLKey = ……. NSErrorFailingURLStringKey = …… NSUnderlyingError = 0x8dafed0“操作无法完成(kCFErrorDomainCFNetwork错误-1012。)”}

我也在网上搜了很多这个错误,有点帮不上。 我也证实了有关访问Web服务器API。 与其他url也得到相同的结果。 从3个URL中,我可以使用POST来获得第一个URL的结果,但是其他2个URL – 就是不能通过它。

任何人都可以帮助我解决这个问题。 哪里错了? 为什么不能访问api的。 任何帮助,高度赞赏。 谢谢

这个错误是NSURLErrorUserCancelledAuthentication

用户取消asynchronousauthentication请求时返回。 这通常是通过在用户名/密码对话框中单击“取消”button而发生的,而不是用户尝试进行身份validation。

这意味着您需要身份validation才能访问正在尝试访问的资源,而无需正确签署您的请求(错误的agentSecret或API_ID或API_SECRET)

在使用AFNetworking的HTTPS(而不是HTTP)URL和错误/过期的证书时,您可能会遇到此错误。 (Chrome在点击URL时显示“您的连接不是私人”信息)。

对于我的情况,我只是设置以下标志的afnetworking http客户端。 allowsInvalidSSLCertificate = YES,它开始工作的HTTPS获取请求。

如果它帮助任何人,只要服务器发回401 (未经授权)的状态码,就会得到这个错误。