Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Objective-C Discussion :

connexion vers une API


Sujet :

Objective-C

  1. #1
    Nouveau membre du Club
    connexion vers une API
    Bonjour,

    Je suis actuellement en stage en entreprise et je suis en charge de developer une application iOS 7, jusque la je me suis bien débrouillé mais là je sèche, cela fait 1 semaine que je suis bloqué et la fin de mon stage avance a grand pas !!!

    L'utilisateur de mon appli doit ce connecter a un site http://factomos.com via (je pense ) cette API https://factomos.com/api/test/ mais je ne vois vraiment pas comment faire !!!!

    Apres de nombreuse recherche je me suis orienté vers l'outils AFNetworking :

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    - (IBAction)logButton<img src="images/smilies/icon_sad.gif" border="0" alt="" title=":(" class="inlineimg" />UIButton *)sender
    {
        NSString *username = loginTextField.text;
        NSString *password = pwdTextField.text;
     
        NSString *urlString = @"https://factomos.com/api/test/";
        AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
        manager.responseSerializer = [AFHTTPResponseSerializer serializer];
        NSDictionary *parameters = @{@"username": username, @"password": password};
        [manager POST:urlString parameters:parameters success:^(AFHTTPRequestOperation *operation, id responseObject) {
     
            if ([operation.responseString rangeOfString:@"You are logged in as"].location == NSNotFound) {
                NSLog(@"Bad login.");
            } else {
                NSLog(@"Login successful!");
            }
        } failure:^(AFHTTPRequestOperation *operation, NSError *error) {
            NSLog(@"Error: %@", error);
        }];
     
     
    }



    mais je sais méme pas si c'est la bonne solution car je comprend vraiment pas le truc

    merci en tout cas je vos réponse merci encore

  2. #2
    Membre habitué
    Oui tu peux utiliser les frameworks Restkit (haut niveau) ou AFNetworking (bas niveau). Perso je ne les utilise pas car comme tu as pu voir c'est une vrai galère à utiliser
    Jte copie colle un exemple de stackoverflow avec des commentaires (non testé mais de mémoire ça à l'air bon)
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    // une requete vers l'api = une NSOperation, ça permet de matriser l'ordre des envois. Ca permet par exemple de "chainer" des requêtes
    AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager]; 
    NSDictionary *params = @{@"user[height]": height, @"user[weight]": weight}; // les paramètres du POST à mettre dans un dictionnaire (clef = valeur)
     
    // on demande au manager de faire une requete POST vers l'adresse voulue avec les paramètres du POST
    [manager POST:@"https://mysite.com/myobject" parameters:params 
    success:^(AFHTTPRequestOperation *operation, id responseObject) {  // Ton opération est asynchrone, quand elle se termine tu vas rentrer dans un des deux blocs (success ou failure)
        NSLog(@"JSON: %@", responseObject); // ici tu rentre dans success, en général le serveur te répond avec un format JSON qui se trouvera dans responseObject
    } failure:^(AFHTTPRequestOperation *operation, NSError *error) {
        NSLog(@"Error: %@", error);  //  // Ta requête à échouée, tu vas probablement trouver le code d'erreur weeb dans error (404, 502..)
    }];

###raw>template_hook.ano_emploi###