IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
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

Symfony PHP Discussion :

web services json [1.x]


Sujet :

Symfony PHP

  1. #1
    Membre habitué Avatar de Willy55
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2012
    Messages
    188
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2012
    Messages : 188
    Points : 131
    Points
    131
    Par défaut web services json
    Bonjour,

    J'ai un petit soucis je développe actuellement une application android qui communique avec un serveur d'application en symfony. Un de mes modules symfony renvoi du Json. Je peux l'afficher très facilement dans mon navigateur mais quand j'essai de l'appeler avec mon appli android j'ai une erreur de Parsing.

    Si j'affiche les erreurs je remarque que ce n'est pas le code Json que je passe en appelant la page mais du code HTML d'une page introuvable...

    Alors que si je met le même code json sur une page php a coté et que je l'appelle ça marche sans problèmes.

  2. #2
    Membre éclairé Avatar de kenny.kev
    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    646
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2007
    Messages : 646
    Points : 816
    Points
    816

  3. #3
    Membre habitué Avatar de Willy55
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2012
    Messages
    188
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2012
    Messages : 188
    Points : 131
    Points
    131
    Par défaut
    Oui c'est le tuto dont je me suis servis, je doute qu'il me soit d'une grande aide.

  4. #4
    Membre éclairé Avatar de kenny.kev
    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    646
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2007
    Messages : 646
    Points : 816
    Points
    816

  5. #5
    Membre habitué Avatar de Willy55
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2012
    Messages
    188
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2012
    Messages : 188
    Points : 131
    Points
    131
    Par défaut
    Mais j'ai suivis exactement comme c'est expliquer avec jobeet, j'ai bien du Json mais quand j'appelle l'url dans mon appli http:www.url.fr/api.json il récupère une page html qui correspond a une erreur 404...

    Alors que si je me rend a l'adresse http:www.url.fr/api.json depuis mon navigateur, le json s'affiche bien correctement...

  6. #6
    Membre éclairé Avatar de kenny.kev
    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    646
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2007
    Messages : 646
    Points : 816
    Points
    816
    Par défaut
    Sans ton code je ne peux pas t'aider.

  7. #7
    Membre habitué Avatar de Willy55
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2012
    Messages
    188
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2012
    Messages : 188
    Points : 131
    Points
    131
    Par défaut
    J'ai fait un web service en symfony ainsi :

    Dans le routing.yml :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    chauffeur:
      url:     /:module/:action.:sf_format
      class:   sfDoctrineRoute
      param:   { module: chauffeur, action: export }
      options: { model: NavibcChauffeur, type: list }
      requirements:
        sf_format: (?:xml|json)
    J'ai une action et 2 template appelé export.json.php et export.xml.php

    Lorsque je me rend sur les page en question : http://url/chauffeur/export.json
    ou bien http://url/chauffeur/export.xml j'ai bien du json ou du xml mais quand j'appelle cette page dans mon application android avec ceci :

    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
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    public static final String strURL = "http://url/chauffeur/export.json";
     
    	private void getServerData() {
    		InputStream is = null;
    		String result = "";
     
    		// CHOIX REQUETE :
    		ArrayList<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
    //		nameValuePairs.add(new BasicNameValuePair("chauffeur", String.valueOf(chauffeur)));
     
    		// CONNEXION :
    		try 
    		{
    			HttpClient httpclient = new DefaultHttpClient();
    			HttpPost httppost = new HttpPost(strURL);
    			httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
    			HttpResponse response = httpclient.execute(httppost);
    			HttpEntity entity = response.getEntity();
    			is = entity.getContent();
    		}
    		catch(Exception e)
    		{
    			Log.e("log_tag", "Error in http connection ",e);
    		}
     
    		// CONVERSION REQUETE EN STRING
    		try {
    			BufferedReader reader = new BufferedReader(new InputStreamReader(is,"iso-8859-1"),8);
    			StringBuilder sb = new StringBuilder();
    			String line = null;
    			while ((line = reader.readLine()) != null) {
    				sb.append(line + "\n");
    			}
    			is.close();
    			result=sb.toString();
    		}catch(Exception e){
    			Log.e("log_tag", "Error converting result ",e);
    		}
    J'ai une erreur de Parsing Json, je met alors un Log sur la variable result et je vois qu'au lieu de contenir le json c'est une page html d'erreur 404 qui est retourner dans la variable.

    Pourtant si je copie colle dans mon navigateur je vois bien mon json donc pourquoi lorsque j'utilise cette url dans ma fonction il essais de parser une page html introuvable...

    Erreur du logcat ci-dessous :

  8. #8
    Membre éclairé Avatar de kenny.kev
    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    646
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2007
    Messages : 646
    Points : 816
    Points
    816
    Par défaut
    Est-ce que tu as désactiver le layout pour les modules REST ?

  9. #9
    Membre habitué Avatar de Willy55
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2012
    Messages
    188
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2012
    Messages : 188
    Points : 131
    Points
    131
    Par défaut
    Non, comment faut-il procéder ?

  10. #10
    Membre éclairé Avatar de kenny.kev
    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    646
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2007
    Messages : 646
    Points : 816
    Points
    816
    Par défaut
    Si c'est pour tout le projet alors tu le fais pour ça globalité :
    dans le fichier apps/mon-appli/config/view.yml

    Code yaml :
    Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2

    default: layout: false

    Sinon dans cache module concerné créer un dossier config et un fichier view.yml puis mettre :
    Code yaml :
    Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2

    default: layout: false

    Attention !! c'est le code symfony qui est utile pas celui d'android

  11. #11
    Membre habitué Avatar de Willy55
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2012
    Messages
    188
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2012
    Messages : 188
    Points : 131
    Points
    131
    Par défaut
    Merci pour ton aide

    En fait le soucis était du coté de l'appli, un httpPost au lieu d'un httpGet

    Mais le paramètre pour désactiver le layout m'intéressait aussi.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Web Service] Web service JSON inaccessible depuis domaine distant
    Par flashnet dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 25/02/2013, 00h31
  2. Problème avec JSON et Web Service
    Par chady dans le forum Services Web
    Réponses: 0
    Dernier message: 09/03/2012, 00h34
  3. Appel d'un web service qui attend des data au format JSON
    Par kazh75 dans le forum Réseau/Web
    Réponses: 6
    Dernier message: 31/03/2011, 10h48
  4. recupérér du json dans mon web service
    Par enzostar dans le forum Services Web
    Réponses: 0
    Dernier message: 03/05/2010, 11h10

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo