web-dev-qa-db-fra.com

iOS ne peut pas effectuer de requête HTTP GET -Error Domain = NSURLErrorDomain Code = -1012

J'essaie d'exécuter une demande HTTP Get, mais je continue à obtenir l'erreur Domain = NSURLErrorDomain Code = -1012. MON code est:

@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);
   }

Je dois obtenir une réponse dans JSon, mais comme les choses ne fonctionnent pas, nous essayons avec une réponse normale. J'ai confirmé les en-têtes à ajouter à la demande. J'ai besoin d'ajouter les deux valeurs aux en-têtes. L'URL est également appropriée.

Les résultats/journaux que j'obtiens sont: Code de réponse 0

Erreur: domaine d'erreur = code NSURLErrorDomain = -1012 "L'opération n'a pas pu être terminée. (Erreur NSURLErrorDomain -1012.)" UserInfo = 0x8abf470 {NSErrorFailingURLKey = ....... NSErrorFailingURLStringKey = ...... NSUnderlyingError = 0x8dafed0 "L'opération n'a pas pu être terminée. (Erreur kCFErrorDomainCFNetwork -1012.)"}

J'ai également beaucoup cherché sur net reg cette erreur, mais je n'ai pas pu obtenir d'aide substantielle. J'ai également confirmé l'accès à l'API du serveur Web. Avec d'autres URL, j'obtiens également les mêmes résultats. À partir de 3 URL, j'ai pu obtenir les résultats de la 1ère URL à l'aide de POST, mais ces 2 autres URL ne pouvaient tout simplement pas passer à travers.

Quelqu'un peut-il m'aider à résoudre ce problème? Où va mal? Pourquoi ne peut pas accéder aux API. Toute aide est grandement appréciée. Merci

15
Tvd

Cette erreur est NSURLErrorUserCancelledAuthentication

Renvoyé lorsqu'une demande d'authentification asynchrone est annulée par l'utilisateur. Cela se produit généralement en cliquant sur un bouton "Annuler" dans une boîte de dialogue nom d'utilisateur/mot de passe, plutôt que l'utilisateur tente de s'authentifier.

Cela signifie que vous avez besoin d'une authentification pour accéder à la ressource à laquelle vous essayez d'accéder sans signer correctement votre demande (mauvais agentSecret ou API_ID ou API_SECRET)

10
msk

Vous pouvez obtenir cette erreur en frappant une URL HTTPS (pas HTTP) avec un certificat incorrect/expiré avec AFNetworking. (Chrome affiche le message "Votre connexion n'est pas privée" lorsque vous appuyez sur l'URL).

35
manroe

Pour mon cas, je viens de définir Oui pour suivre le drapeau du client http afnetworking. allowInvalidSSLCertificate = YES, il commence à fonctionner pour la requête get https.

4
jatin

Si cela aide quelqu'un, vous obtiendrez cette erreur chaque fois qu'un serveur renvoie un 401 (code de statut non autorisé).

1
inorganik