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

Bibliothèques et frameworks PHP Discussion :

[Web Service] Affichage d'une reponse


Sujet :

Bibliothèques et frameworks PHP

  1. #1
    Futur Membre du Club
    Étudiant
    Inscrit en
    Mai 2007
    Messages
    11
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2007
    Messages : 11
    Points : 7
    Points
    7
    Par défaut [Web Service] Affichage d'une reponse
    j'ai une methode d'un service web qui affiche l"ensemble des plats contenues dans ma table plat. mon code est le suivant

    page qui utilise le service:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <?php
    include('lib/nusoap.php');
    $service=new SoapClient("http://127.0.0.1/servicesweb/codes/Plateforme/restaurant1.php?wsdl");
     
    $response = $service->getPlats();
    print_r($response);
    ?>
    Mon soucis c'est qu'il m'affiche:
    stdClass Object ( )

  2. #2
    Membre éclairé

    Profil pro
    Inscrit en
    Juin 2004
    Messages
    772
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Juin 2004
    Messages : 772
    Points : 872
    Points
    872
    Par défaut
    Un conseil : Ouvre une nouvelle discussion plutôt que de resortir ce topic vieux de 2 ans, qui plus est résolu.

    Et montre nous la WSDL et le code côté serveur qu'on sache ce que tu attends en réponse. Car effectivement ton objet de réponse est vide...
    • Mon blog PHP : http://blog.alterphp.com
    • "Peace cannot be kept by force, it can only be achieved by Understanding" -- Albert Einstein

  3. #3
    Futur Membre du Club
    Étudiant
    Inscrit en
    Mai 2007
    Messages
    11
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2007
    Messages : 11
    Points : 7
    Points
    7
    Par défaut Problème d'affichage resultat service web:stdClass Object ( )
    bonjour j'ai un probleme pour afficher un service web
    j'ai une methode d'un service web qui affiche l"ensemble des plats contenues dans ma table plat. mon code est le suivant

    page qui utilise le service:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <?php
    include('lib/nusoap.php');
    $service=new SoapClient("http://127.0.0.1/servicesweb/codes/Plateforme/restaurant1.php?wsdl");
     
    $response = $service->getPlats();
    print_r($response);
    ?>
    Mon soucis c'est qu'il m'affiche:
    stdClass Object ( )

    la WSDL

    Code xml : 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
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    <?xml version="1.0" encoding="ISO-8859-1"?>
    <definitions xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" 
        xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
        xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" 
        xmlns:tns="http://localhost/" 
        xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" 
        xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" 
        xmlns="http://schemas.xmlsoap.org/wsdl/" targetNamespace="http://localhost/">
    -
    <types>
    -
    <xsd:schema targetNamespace="localhost">
    <xsd:import namespace="http://schemas.xmlsoap.org/soap/encoding/"/>
    <xsd:import namespace="http://schemas.xmlsoap.org/wsdl/"/>
    -
    <xsd:complexType name="plats">
    -
    <xsd:all>
    <xsd:element name="id" type="xsd:string" use="optionnal"/>
    <xsd:element name="libelle" type="xsd:string" use="optionnal"/>
    </xsd:all>
    </xsd:complexType>
    -
    <xsd:complexType name="lesplats">
    -
    <xsd:complexContent>
    -
    <xsd:restriction base="SOAP-ENC:Array">
    <xsd:attribute ref="SOAP-ENC:arrayType" wsdl:arrayType="tns:plats[]"/>
    </xsd:restriction>
    </xsd:complexContent>
    </xsd:complexType>
    </xsd:schema>
    </types>
    <message name="getPlatsRequest"/>
    -
    <message name="getPlatsResponse">
    <part name="plats" type="tns:plats"/>
    </message>
    -
    <message name="addPlatRequest">
    <part name="id" type="xsd:string"/>
    <part name="libelle" type="xsd:string"/>
    </message>
    -
    <message name="addPlatResponse">
    <part name="return" type="xsd:int"/>
    </message>
    -
    <portType name="MyWebservicePortType">
    -
    <operation name="getPlats">
    <input message="tns:getPlatsRequest"/>
    <output message="tns:getPlatsResponse"/>
    </operation>
    -
    <operation name="addPlat">
    <input message="tns:addPlatRequest"/>
    <output message="tns:addPlatResponse"/>
    </operation>
    </portType>
    -
    <binding name="MyWebserviceBinding" type="tns:MyWebservicePortType">
    <soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>
    -
    <operation name="getPlats">
    <soap:operation soapAction="http://127.0.0.1/servicesweb/codes/Plateforme/restaurant1.php/getPlats" style="rpc"/>
    -
    <input>
    <soap:body use="encoded" namespace="localhost" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
    </input>
    -
    <output>
    <soap:body use="encoded" namespace="localhost" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
    </output>
    </operation>
    -
    <operation name="addPlat">
    <soap:operation soapAction="http://127.0.0.1/servicesweb/codes/Plateforme/restaurant1.php/addPlat" style="rpc"/>
    -
    <input>
    <soap:body use="encoded" namespace="localhost" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
    </input>
    -
    <output>
    <soap:body use="encoded" namespace="localhost" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
    </output>
    </operation>
    </binding>
    -
    <service name="MyWebservice">
    -
    <port name="MyWebservicePort" binding="tns:MyWebserviceBinding">
    <soap:address location="http://127.0.0.1/servicesweb/codes/Plateforme/restaurant1.php"/>
    </port>
    </service>
    </definitions>

    code côté serveur

    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
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    require_once ("lib/nusoap.php"); // Appel de nusoap
    $NAMESPACE = 'localhost';
    $server = new soap_server(); // Création d'un nouveau serveur
    $server->configureWSDL('MyWebservice', $NAMESPACE); // Configuration du serveur
    $server->wsdl->schemaTargetNamespace = $NAMESPACE; // Définition du schema target namespace
     
    $server->wsdl->addComplexType(
    'plats',
    'complexType',
    'struct',
    'all',
    '',
    array(
    'id'=> array('name'=>'id','type'=>'xsd:string','use'=>''),
    'libelle'=> array('name'=>'author','type'=>'xsd:string','use'=>''),
    )
    );
     
     
    $server->wsdl->addComplexType(
    'lesplats',
    'complexType',
    'array',
    '',
    'SOAP-ENC:Array',
    array(),
    array(
    array('ref'=>'SOAP-ENC:arrayType','wsdl:arrayType'=>'tns:plats[]')
    ),
    'tns:plats'
    );
     
    //fonctions pour manipuler les types
     
    function getPlats()
    {
    // Connexion à notre base de données.
    mysql_connect("localhost","root","") or die ("Could not connect");
    mysql_select_db ("restaurant1") or die ("Could not select database");
     
    // Requête MYSQL pour récupérer la liste de tous les commentaires et les stocker dans une variable result.
    $request = "SELECT * FROM plats ORDER BY id DESC";
    $result = mysql_query($request);
    $tab=array();
    // Nous parcourons le résultat et nous recopions les commentaires dans un nouveau tableau
    while ($row = mysql_fetch_row($result))
    {
    $tab[] = array(
    'id' => $row[0],
    'libelle' => $row[1]
    );
    }
    return $tab;
    }
     
     
    //ajout de plats
     
    function addPlat($id, $libelle)
    {
    mysql_connect("localhost","root","") or die ("Could not connect");
    mysql_select_db ("restaurant1") or die ("Could not select database");
     
    $text = htmlentities($libelle, ENT_QUOTES);
     
    // On ajoute le commentaire
    $request =
    "
    INSERT INTO `plats` ( `id`, `libelle`)
    VALUES ('$id', '$libelle')
    ";
    mysql_query($request);
    return 0;
    }
     
    //enregistrements des methodes
     
    $server->register("getPlats", array(), array('plats'=>'tns:plats'), $NAMESPACE);
    $server->register("addPlat", array('id'=>'xsd:string', 'libelle'=>'xsd:string'), array('return'=>'xsd:int'), $NAMESPACE);
     
    //
     
    $HTTP_RAW_POST_DATA = isset($HTTP_RAW_POST_DATA) ? $HTTP_RAW_POST_DATA : '';
    $server->service($HTTP_RAW_POST_DATA);

  4. #4
    Membre éclairé

    Profil pro
    Inscrit en
    Juin 2004
    Messages
    772
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Juin 2004
    Messages : 772
    Points : 872
    Points
    872
    Par défaut
    Que retourne la requête SQL :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT * FROM plats ORDER BY id DESC
    Côté serveur, pourquoi ceci ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    $server->wsdl->addComplexType(
    'plats',
    'complexType',
    'struct',
    'all',
    '',
    array(
    'id'=> array('name'=>'id','type'=>'xsd:string','use'=>''),
    'libelle'=> array('name'=>'author','type'=>'xsd:string','use'=>''),
    )
    );
    Côté serveur également :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $NAMESPACE = 'localhost';
    Pourquoi ne pas mettre ceci plutôt ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $NAMESPACE = 'http://localhost/';
    • Mon blog PHP : http://blog.alterphp.com
    • "Peace cannot be kept by force, it can only be achieved by Understanding" -- Albert Einstein

  5. #5
    Futur Membre du Club
    Étudiant
    Inscrit en
    Mai 2007
    Messages
    11
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2007
    Messages : 11
    Points : 7
    Points
    7
    Par défaut
    SELECT * FROM plats ORDER BY id DESC
    retourne la liste de tous les plats qui sont dans ma table plats

    la methode getPlat doit me renvoyer un tableau de valeur

  6. #6
    Membre éclairé

    Profil pro
    Inscrit en
    Juin 2004
    Messages
    772
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Juin 2004
    Messages : 772
    Points : 872
    Points
    872
    Par défaut
    Oui mais est-ce que des données sont bien retournées par la requête ?
    • Mon blog PHP : http://blog.alterphp.com
    • "Peace cannot be kept by force, it can only be achieved by Understanding" -- Albert Einstein

  7. #7
    Futur Membre du Club
    Étudiant
    Inscrit en
    Mai 2007
    Messages
    11
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2007
    Messages : 11
    Points : 7
    Points
    7
    Par défaut
    j'ai trouvé le problème c'était au niveau de la déclaration et de l'enregistremnt de la methode.
    Voici le bon code du service web

    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
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    <?php
    require_once ("lib/nusoap.php"); // Appel de nusoap
    $NAMESPACE = 'http://localhost';
    $server = new soap_server(); // Création d'un nouveau serveur
    $server->configureWSDL('MyWebservice', $NAMESPACE); // Configuration du serveur
    $server->wsdl->schemaTargetNamespace = $NAMESPACE; // Définition du schema target namespace
     
    $server->wsdl->addComplexType(
    'plats',
    'complexType',
    'struct',
    'all',
    '',
    array(
    'id'=> array('name'=>'id','type'=>'xsd:string','use'=>''),
    'libelle'=> array('name'=>'author','type'=>'xsd:string','use'=>''),
    )
    );
     
     
    $server->wsdl->addComplexType(
    'lesplats',
    'complexType',
    'array',
    '',
    'SOAP-ENC:Array',
    array(),
    array(
    array('ref'=>'SOAP-ENC:arrayType','wsdl:arrayType'=>'tns:plats[]')
    ),
    'tns:plats'
    );
     
    //fonctions pour manipuler les types
     
    function getPlats()
    {
    // Connexion à notre base de données.
    mysql_connect("localhost","root","") or die ("Could not connect");
    mysql_select_db ("restaurant1") or die ("Could not select database");
     
    // Requête MYSQL pour récupérer la liste de tous les commentaires et les stocker dans une variable result.
    $request = "SELECT * FROM plats ORDER BY id DESC";
    $result = mysql_query($request);
    $tab=array();
    // Nous parcourons le résultat et nous recopions les commentaires dans un nouveau tableau
    $i = 0;
    while ($row = mysql_fetch_array($result))
    {
     
    $array[$i] = array(
    'id' => $row['id'],
    'libelle' => $row['libelle'],
    );
     
    ++$i;
    }
    return $array;
    }
     
     
    //ajout de plats
     
    function addPlat($id, $libelle)
    {
    mysql_connect("localhost","root","") or die ("Could not connect");
    mysql_select_db ("restaurant1") or die ("Could not select database");
     
    $text = htmlentities($libelle, ENT_QUOTES);
     
    // On ajoute le commentaire
    $request =
    "
    INSERT INTO `plats` ( `id`, `libelle`)
    VALUES ('$id', '$libelle')
    ";
    mysql_query($request);
    return 0;
    }
     
    //enregistrements des methodes
    $server->register("getPlats", array(), array('lesplats'=>'tns:lesplats'), $NAMESPACE);
    $server->register("addPlat", array('id'=>'xsd:string', 'libelle'=>'xsd:string'), array('return'=>'xsd:int'), $NAMESPACE);
     
    //
     
    $HTTP_RAW_POST_DATA = isset($HTTP_RAW_POST_DATA) ? $HTTP_RAW_POST_DATA : '';
    $server->service($HTTP_RAW_POST_DATA);
     
     
    ?>
    merci beaucoup. jesper que ce code servira à une autre personne

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

Discussions similaires

  1. affichage des données provenant d'un web service soap dans une listview
    Par nagca dans le forum API standards et tierces
    Réponses: 1
    Dernier message: 04/07/2011, 17h11
  2. [Web Service][SOAP] Lire une réponse SOAP
    Par jmalfoy dans le forum Bibliothèques et frameworks
    Réponses: 0
    Dernier message: 01/03/2010, 14h21
  3. web service (AXIS) est une solution ?
    Par hicham129 dans le forum Services Web
    Réponses: 0
    Dernier message: 05/07/2009, 16h28
  4. Invoquere un web service à partir d'une page JSP
    Par madjidri dans le forum Services Web
    Réponses: 4
    Dernier message: 02/07/2008, 10h17
  5. appel d'un java web service à partir d'une page web
    Par issamos4 dans le forum Services Web
    Réponses: 2
    Dernier message: 31/05/2007, 14h26

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