json et les hergements, probléme de formatage

hamidphonehamidphone Membre
décembre 2012 modifié dans API UIKit #1
bonjour

j'ai developer une application qui parse un fichier json, et pendant sa durée de development j'utilise un hergement gratuit (il me retoune bien le fichier json) .

tout fonction a merveille , quand j'ai passe a mutalise car l'application presque préte.

jai choisie 1AND1, le probleme est qu'il me retourne un fichier html voila avec <pre>json</pre>.

merci de votre aide.

Réponses

  • LeChatNoirLeChatNoir Membre, Modérateur
    c'est quoi qui te génère le JSON ? Un php ?

    Dans ce cas, tu dois avoir un header qui te permet d'indiquer que tu retourne du JSON.



    Genre :
    <br />
    header(&#39;Content-type: application/json&#39;);<br />
    
  • hamidphonehamidphone Membre
    décembre 2012 modifié #3
    rien je cherche une fonctionnalite peut etre en php est ce que c'est une bonne methode

    car mon json est ecrit a la main mais j'envisage de mettre un formulaire en php pour le remplir

    si php est une bonne solution possible de me donner la solution comment retourner le json sans les balises <pre>

    json esr dans fichier mp3.json
  • SpekSpek Membre
    décembre 2012 modifié #4
    Mais ton fichier qui génère ton json, c'est toi qui l'a créé ? Il n'y aucune raison que 1and1 te mettent des balises <pre>...

    surtout si il est fait main.



    Après un fichier Json c'est juste l'affichage texte d'un ou plusieurs objets. Il n'y a rien de violent là -dedans.



    En fait je crois que je n'ai pas réussi à  saisir ton explication.
  • 'Spek' a écrit:


    Mais ton fichier qui génère ton json, c'est toi qui l'a créé ? Il n'y aucune raison que 1and1 te mettent des balises <pre>...

    surtout si il est fait main.



    Après un fichier Json c'est juste l'affichage texte d'un ou plusieurs objets. Il n'y a rien de violent là -dedans.



    En fait je crois que je n'ai pas réussi à  saisir ton explication.


    sur un hergement autre (gratuit) fonctionne bien j'ai retour json
  • xylowebxyloweb Membre
    décembre 2012 modifié #6
    as-tu essayé avec Safari et le module Developer en mode 'Code Source' (pas en mode 'Arbre DOM') ?

    ça donne quoi ?



    peux-tu nous donner l'URL ?
  • http://islamic-app.comoj.com/json/mp3.json

    hebergement gratuit

    hebergement 1and1

    http://www.app-islamic.com/json/mp3.json

    c'est pour une association
  • AliGatorAliGator Membre, Modérateur
    décembre 2012 modifié #8
    De ce que e comprend il ne génère as le JSON dynamiquement avec du PHP ou autre, c'est juste un fichier JSON statique placé sur le serveur !



    Par contre moi j'ai suivi tes deux liens, et les deux contiennent un JSON parfaitement formatté et valide, sans aucune balise HTML du genre <pre> autour.



    Tu es sûr que ce n'est pas ton navigateur ou autre outil avec lequel tu affiches le JSON qui te rajoute ces balises <pre> qui en vrai ne sont pas là  et pas retournées par le serveur mais que ton client (navigateur web par exemple) rajoute lui-même ?



    Si tu récupère directement ce qui t'es retourné par l'URL, sans passer par un navigateur qui risque de te mettre en forme le résultat, ça donne quoi ? Par exemple si tu ouvres l'application Terminal et tapes "curl http://www.app-islamic.com/json/mp3.json"; dans la ligne de commande puis valide, tu vois ces "<pre>" autour de ton JSON ? Et dans ton code iOS, tu récupères ces <pre> ou pas ?

    A mon avis tu crois qu'ils sont là  car c'est ton navigateur web qui les rajoute, mais si tu récupères les données brutes via le Terminal ou via ton code Objective-C (genre via un NSURLConnection ou AFNetworking ou autre) tu verras qu'en vrai ils ne sont pas présents !
  • hamidphonehamidphone Membre
    décembre 2012 modifié #9
    j'utilse AFNetworking pour parser le json sur le hebergement gratuit fonctionne http://islamic-app.c...m/json/mp3.json

    sur 1and1 ne fonctionne pas

    http://www.app-islam...m/json/mp3.json

    j'ai teste les 2 avec curl et les 2 retourne json sans pre mais

    avec firebug comportement different
  • AliGatorAliGator Membre, Modérateur
    Quand tu dis que tu utilises AFNetworking pour parser le json et qu'avec 1and1 ça ne fonctionne pas, tu peux nous monter ton bout de code, et nous décrire un peu mieux le comportement que tu as (ça passe dans le bloc de succès mais pas avec les bonnes données, ça passe dans le block de failure, ...?) et les logs et l'erreur que tu as en retour ?
  • hamidphonehamidphone Membre
    décembre 2012 modifié #11
    <br />
    2012-12-21 19:24:58.982 Islamic App[5575:c07] Request Failed with Error: Error Domain=AFNetworkingErrorDomain Code=-1016 &quot;Expected content type {(<br />
    	&quot;text/json&quot;,<br />
    	&quot;application/json&quot;,<br />
    	&quot;text/javascript&quot;<br />
    )}, got text/plain&quot; UserInfo=0x94769c0 {NSLocalizedRecoverySuggestion=<br />
    AFNetworkingOperationFailingURLRequestErrorKey=&lt;NSURLRequest [url="http://www.app-islamic.com/json/mp3.json&gt;"]http://www.app-islam.&#46;&#46;/json/mp3.json&gt;[/url], NSErrorFailingURLKey=http://www.app-islamic.com/json/mp3.json, NSLocalizedDescription=Expected content type {(<br />
    	&quot;text/json&quot;,<br />
    	&quot;application/json&quot;,<br />
    	&quot;text/javascript&quot;<br />
    )}, got text/plain, AFNetworkingOperationFailingURLResponseErrorKey=&lt;NSHTTPURLResponse: 0xa559ce0&gt;}, {<br />
    	AFNetworkingOperationFailingURLRequestErrorKey = &quot;&lt;NSURLRequest [url="http://www.app-islamic.com/json/mp3.json&gt;%22;"]http://www.app-islamic.com/json/mp3.json&gt;&quot;;[/url]<br />
    	AFNetworkingOperationFailingURLResponseErrorKey = &quot;&lt;NSHTTPURLResponse: 0xa559ce0&gt;&quot;;<br />
    	NSErrorFailingURLKey = &quot;http://www.app-islamic.com/json/mp3.json&quot;;<br />
    	NSLocalizedDescription = &quot;Expected content type {(\n	\&quot;text/json\&quot;,\n	\&quot;application/json\&quot;,\n	\&quot;text/javascript\&quot;\n)}, got text/plain&quot;;<br />
    	NSLocalizedRecoverySuggestion = &quot;[\t\n<br />
    <br />
    
  • hamidphonehamidphone Membre
    décembre 2012 modifié #12
    resolut dans AFJSONRequestOperation.m j'ai modifier sa
    <br />
    #pragma mark - AFHTTPRequestOperation<br />
    <br />
    + (NSSet *)acceptableContentTypes {<br />
    	return [NSSet setWithObjects:@&quot;application/json&quot;, @&quot;text/json&quot;, @&quot;text/javascript&quot;, @&quot;text/plain&quot;,@&quot;text/html&quot;,nil];//@&quot;application/json&quot;, @&quot;text/json&quot;, @&quot;text/javascript&quot;, nil];<br />
    }<br />
    




    mais je comprend pas le retour different format dans different hebergement

    j'ai cherche et je crois c'est lier au httpd.config dans apache

    application/json exists in Apache2/conf/mime.types

    acr j'ai aussi un autre fichier json qui est écrit en arabe et anglais mais sur hebergement gratuit un bon retour les mot en arabe sont bien afficher dans application par contre dans 1and1 retour cripters avec caractaires bizzares

    une idée les gas ??

    malger que le fichier est le méme .

    merci tous le monde
  • xylowebxyloweb Membre
    décembre 2012 modifié #13
    UTF8 , vérifie ton charset...
  • 'xyloweb' a écrit:


    UTF8 , vérifie ton charset...


    déja vérifier et c'est le meme fichier vraiment méme en charset utf8 les 2

    line endings use unix Line endings LS

    meme soft xcode
  • AliGatorAliGator Membre, Modérateur
    décembre 2012 modifié #15
    à‰vite de modifier directement le code de AFNetworking !

    Il y a une méthode dans AFNetworking pour ajouter des acceptableContentTypes qui est faite pour ça.



    Et sinon ca confirme donc que ce n'est pas un <pre> qui est rajouté ou quoi mais que cest un mauvais content-type qui est retourné. C'est en effet dû à  leur configuration Apache chez 1and1 qui n'a pas du configurer l'extension ".json" pour être servie avec le content-type adéquat. Ce qui est un peu léger comme config ça vaut le coup de la modifier (si 1and1 te donne la main dessus mais j'en suis pas sûr ça dépend de ce qu'ils proposent dans leur offre) ou de leur écrire un mail pour leur demander de corriger



    PS : Vérifie quand même pour voir ce que AFN envoie dans les headers de la requête comme header "accept" (ou un nom comme ça j'ai plus le header exact en tête) qui dit au serveur quels content-types il attend en retour
  • bonjour merci AliGAter je vais essayer de trouver sa
  • 'hamidphone' a écrit:


    bonjour merci AliGAter je vais essayer de trouver sa




    Attention, si tu massacres le nom de notre croco préféré, il va pas aimer !!! image/grin.gif' class='bbc_emoticon' alt=';D' />
  • Tu n'es pas obligé de définir le content-type au niveau le plus haut d'Apache.

    Tu peux le définir dans un fichier .htaccess



    regarde l'exemple sur l'url suivante : http://www.htaccess-guide.com/adding-mime-types/
Connectez-vous ou Inscrivez-vous pour répondre.