Tumblr API V2, Réponse en NSData, mais comment ?

Pixel INCPixel INC Membre
mai 2014 modifié dans Actualités #1

Bonjour,


 


 


J'aimerais, via l'api de Tumblr, récupérer la réponse en NSData pour finir par la parser, mais je me retrouve soit avec une erreur, soit avec une réponse vide.


 


Comment récupérer la réponse de çA par exemple : 


http://api.tumblr.com/v2/blog/peacecorps.tumblr.com/posts/text?notes_info=true


 


 (Utilisez le lien complet lorsque vous cliquez sur ce lien pour le test)


 


EDIT


Seconde question : Comment utiliser un NSObject séparé comme delegate de ma Tableview de mon VC ?


J'explique.


Le Framework que je construit : PXTumblr, utilise sa classe native de type NSObject <UITableViewDelegate,UITableViewDataSource> pour être utilisé, et l'utilisateur, dans l'idéal, devrait utiliser cette classe comme datasource afin de remplir la tableview qu'il a choisir avec ce que ma lib a récupéré


Mais comment ?


Merci


Réponses

  • LarmeLarme Membre

    J'ai pas compris ton soucis...

    Ton soucis vient du parsing ? Ou de comment utiliser l'API et les URLs à  rentrer ?


     


    Pour la deuxième question : Un singleton qui se charge de la partie communication avec le web ?


  • Premier :


    Non, juste, comment récupérer en string la réponse retournée par le serveur (quand tu clique sur le lien, tu vois du JSON à  l'écran, c'est ça que je veux avoir)


     


    Second :


    Je veux juste savoir comment reléguer le parsing de la table à  la classe PXTumblr 


    Mais je pense changer ça et "encapsuler" dans des méthodes, ce serait plus facile.


  • LarmeLarme Membre

    AFNetworking dans l'doute, pour ce qui est connexion aux WebService, c'est plutôt pas mal.


  • pourquoi ré-inventer la roue ?


    https://github.com/tumblr/TMTumblrSDK


  • AliGatorAliGator Membre, Modérateur
    Question 1 :
    * Télécharger des données en utilisant les classes du SDK : https://developer.apple.com/library/ios/documentation/Cocoa/Conceptual/URLLoadingSystem/URLLoadingSystem.html
    * Utiliser un framework tierce pour télécharger des données : utiliser AFNetworking
    * Ne pas réinventer la roue : cd lien de xyloweb

    Question 2 : Pattern delegate.
  • Aucun sens ce que tu me dis.

    Je fais ça comme projet personnel, car si je me repose tout le temps sur des lib j'avancerais jamais dans mon apprentissage !


  • AliGatorAliGator Membre, Modérateur

    Heu là  c'est ta réponse qui n'a aucun sens.


     


    C'est comme si tu disais que tu voulais monter un meuble, on te propose des meubles IKEA ou bien des planches en bois, des vis et des équerres, et que toi tu nous répondes "ah mais ça n'a aucun sens vos réponses, moi je veux apprendre à  transformer mon arbre en planche de bois, à  fraiser mes vis et tordre mes équerres et pas juste assembler des éléments existants pour créer le meuble de mes rêves".


     


    Si tu pars comme ça tu ne vas pas avancer bien vite. Car tu as beaucoup à  apprendre, et si tu veux apprendre tout d'un seul coup, tu vas te surcharger. Alors que si tu utilises une lib toute faite, t'inquiète pas que tu auras quand même des problèmes autres à  résoudre dans ton application et que tu ne manqueras pas de challenges pour te faire progresser dans ton apprentissage sur beaucoup de sujets, avant de penser une seconde t'attaquer à  un sujet plus complexe. Quand je vois tes interventions sur le forum, on voit que tu débutes sur ObjC et même si tu apprends vite crois moi il y a énormément de choses à  apprendre avant même de penser à  te lancer dans le développement d'un framework qui réinvente la roue d'un truc déjà  existant. De plus, ce comportement ne te fera pas aller très loin.

  • Quel comportement ?

    J'aime juste pas qu'on dise des réponses pour "faire la morale" alors que je pose des questions précises.


    Bref, comment je fais ça : Récupérer ce que Tumblr me renvoie ? Car j'essaie depuis trop longtemps la, j'ai cherché partout, soit j'obtient une erreur, soit quand c'est débuggé un "(null)" donc.. :/


     


    Bout de code ?


  • LarmeLarme Membre
    mai 2014 modifié #10

    J'ai indiqué : C'est une réponse JSON.

    AFNetWorking est pas mauvais pour dialoguer avec des WebServices.

    Il y a pleins de questions sur comment désérializer du JSON.

    C'est une vraie plaie, car les gens ne cherchent pas à  comprendre comment est formé leur JSON (y'a 4/5 questions par jour sur SO dessus), c'est juste des NSArray ou des NSDictionary imbriqués les uns dans les autres.

     


  • CéroceCéroce Membre, Modérateur

    - (void) launchTumblrRequest
    {
    NSURL *URL = [NSURL URLWithString:@http://api.tumblr.com/v2/blog/peacecorps.tumblr.com/posts/text?api_key=fuiKNFp9vQFvjLNvx4sUwti4Yb5yGutBN4Xh10LXZhhRKjWlV4&notes_info=true];
    NSURLRequest *request = [NSURLRequest requestWithURL:URL];
    [NSURLConnection sendAsynchronousRequest:request queue:[NSOperationQueue mainQueue] completionHandler:^(NSURLResponse *response, NSData *data, NSError *connectionError) {
    if(data)
    {
    // Parser le JSON ici
    }
    else
    {
    NSLog(@Erreur: %@", connectionError);
    }
    }];
    }
  • PyrohPyroh Membre


    Aucun sens ce que tu me dis.

    Je fais ça comme projet personnel, car si je me repose tout le temps sur des lib j'avancerais jamais dans mon apprentissage !




     


    Alors arrête tout de suite d'utiliser Fondation, oublie les NSArray et autres NSDictionnary. La structure de donnée y'a que ça de vrai ! Implémente des arbres binaires, des hashtables et tout le tralala, là  tu vas apprendre pour de vrai, j'espère que t'as des connaissances solides en maths. (De la saine lecture)... Ce n'est qu'un échantillon des choses à  apprendre, hein !


    Après ça l'API tumblr te paraà®tra être une promenade de santé... 


     


    On apprend à  nager la tête hors de l'eau avant d'aller tenter de tutoyer les abysses...



  • Alors arrête tout de suite d'utiliser Fondation, oublie les NSArray et autres NSDictionnary. La structure de donnée y'a que ça de vrai ! Implémente des arbres binaires, des hashtables et tout le tralala, là  tu vas apprendre pour de vrai, j'espère que t'as des connaissances solides en maths. (De la saine lecture)... Ce n'est qu'un échantillon des choses à  apprendre, hein !


    Après ça l'API tumblr te paraà®tra être une promenade de santé... 


     


    On apprend à  nager la tête hors de l'eau avant d'aller tenter de tutoyer les abysses...




    Sans être méchant, c'est ce genre de message hors-sujet que j'aimerais éviter.

    Merci.

  • AliGatorAliGator Membre, Modérateur


    Quel comportement ?

    J'aime juste pas qu'on dise des réponses pour "faire la morale" alors que je pose des questions précises.


    Bref, comment je fais ça : Récupérer ce que Tumblr me renvoie ? Car j'essaie depuis trop longtemps la, j'ai cherché partout, soit j'obtient une erreur, soit quand c'est débuggé un "(null)" donc.. :/


     


    Bout de code ?




    On te fait pas la morale, on a plutôt l'impression que c'est toi qui nous la fait.


     


    Tu nous demande comment faire, donc on te répond en te proposant non pas une mais même plusieurs solutions (les classes NSURLConnection/NSURLSession du SDK, ou AFNetworking, ou TMThumblrSDK), et toi tu nous dit "c'est nul vos réponses ça n'a pas de sens". Ok bon bah démerde toi alors si tu le prends comme ça quand on te donne des réponses à  tes questions, hein...

  • Pixel INCPixel INC Membre
    mai 2014 modifié #15

    Désolé je m'était emporté, car j'aime juste pas qu'on interrompe le sujet pour des messages moralisateurs inutiles, bref, passons.


     


    Ta réponse était bonne, maintenant c'est dans le parsing que j'ai mon soucis car j'ai plein de problèmes vu que c'est un arbre multi-dimensionnel contenant aussi bien des Chaines de caractère que des Entiers, et je vois pas comment récupérer des entiers (comme : "posts":4, récupérer le 4)


  • LarmeLarme Membre

    Comme je l'ai déjà  dit.


    Du JSON, c'est comme si c'était des NSDictionary et/ou des NSArray, les uns dans les autres...

    Il faut donc y aller petit à  petit.

    Avoir chaque branche une à  une, c'est ce que je te conseille, surtout que c'est apparemment la première fois que tu en fais.

    Accède au niveau 1, puis au niveau 2, etc.

    Et du peut très bien faire int unInt = [taValeur intValue]; ou NSString *unString = [taValeur stringValue];


Connectez-vous ou Inscrivez-vous pour répondre.