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] Client SOAP test et XML


Sujet :

Bibliothèques et frameworks PHP

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Février 2007
    Messages
    229
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 229
    Points : 87
    Points
    87
    Par défaut [Web Service] Client SOAP test et XML
    Bonjour,

    j'aimerai savoir si il existe un autre logiciel que SoapUI pour tester un service web ?

    De plus, lorsque je passe une chaine contenant du XML, SOAP, j'ai une erreur :

    ma chaine xml :

    <?xml version="1.0" encoding="UTF-8"?>
    <API version="1.0">
    <author>********</author>
    <action name="deleteUserFromGroup">
    <cn>coooool4</cn>
    <uid>569998563211</uid>
    </action>
    </API>

    l'erreur :
    <faultcode>SOAP-ENV:Client</faultcode>
    <faultstring>Bad Request</faultstring>
    Je pense que Soap remplace les caractères tels que '<' et '>' pour éviter de s'emmêler avec ses balises mais y-aurait-une solution pour éviter cela ?
    Merci !

  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
    Bonjour,

    La chaîne XML que tu nous montres, c'est celle envoyée au serveur hébergeant le webservice ou celle entrée dans SoapUI avant d'être transmise ?

    Peux-tu nous montrer la WSDL du webservice, et détailler un peu plus...
    • Mon blog PHP : http://blog.alterphp.com
    • "Peace cannot be kept by force, it can only be achieved by Understanding" -- Albert Einstein

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Février 2007
    Messages
    229
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 229
    Points : 87
    Points
    87
    Par défaut
    Citation Envoyé par pc.bertineau Voir le message
    Bonjour,

    La chaîne XML que tu nous montres, c'est celle envoyée au serveur hébergeant le webservice ou celle entrée dans SoapUI avant d'être transmise ?

    Peux-tu nous montrer la WSDL du webservice, et détailler un peu plus...
    La chaîne XML est celle que j'envoie par le biais de SoapUI (mais également d'un programme de test tout simple).

    Voici le WSDL :
    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
     
    <?xml version="1.0" encoding="utf-8" ?>
        <definitions name="myselfcare"
        targetNamespace="urn:myselfcare"
        xmlns:typens="urn:myselfcare"
        xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
        xmlns:xsd="http://www.w3.org/2001/XMLSchema"
        xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
        xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
        xmlns="http://schemas.xmlsoap.org/wsdl/">
        <types>
    		<xsd:schema xmlns = "http://www.w3.org/2001/XMLSchema" targetNamespace = "urn:myselfcare">
    		</xsd:schema>
    	</types>
           <message name="ExecuteAPIRequest">
            <part name="Param" type="xsd:string" />
            </message>
          <message name="ExecuteAPIResponse">
            <part name="return" type="xsd:string" />
             </message>
          <operation name="ExecuteAPI">
         <input message="typens:ExecuteAPIRequest" />
         <output message="typens:ExecuteAPIResponse" />
          </operation>
     </portType>
        <binding name="myselfcareBinding" type="typens:myselfcarePortType">
            <soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>
    <operation name="ExecuteAPI">
            <soap:operation soapAction="http://localhost/test/soapcall"/>
            <input name = "ExecuteAPIRequest">
            <soap:body use="encoded" namespace="urn:myselfcare" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
           </input>
           <output name = "ExecuteAPIResponse">
              <soap:body use="encoded" namespace="urn:myselfcare" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
           </output>
           </operation>
          </binding>
    Enfin, voici la commande que je souhaite envoyer par SoapUI :
    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
     
    <soapenv:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:urn="urn:myselfcare">
       <soapenv:Header/>
       <soapenv:Body>
          <urn:ExecuteAPI soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
             <Param xsi:type="xsd:string"><?xml version="1.0" encoding="UTF-8"?>
    <API version="1.0">
    	<author>A remplir</author>
    	<action name="createUser">
    		<lastname>coooool34</lastname>
    		<uid>sfegsehhse55</uid>
    	</action>
    </API>
    </Param>
          </urn:ExecuteAPI>
       </soapenv:Body>
    </soapenv:Envelope>
    Merci

  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
    Oulà ! ça me semble un peu bizarre de vouloir envoyer du XML dans une enveloppe XML mais soit :

    Inclus la chaîne dans <Param> dans une section [CDATA] :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <Param xsi:type="xsd:string">
      <! [CDATA[<?xml version="1.0" encoding="UTF-8"?>
        <API version="1.0">
          <author>A remplir</author>
          <action name="createUser">
            <lastname>coooool34</lastname>
            <uid>sfegsehhse55</uid>
          </action>
        </API>]]>
    </Param>
    • Mon blog PHP : http://blog.alterphp.com
    • "Peace cannot be kept by force, it can only be achieved by Understanding" -- Albert Einstein

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Février 2007
    Messages
    229
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 229
    Points : 87
    Points
    87
    Par défaut
    Citation Envoyé par pc.bertineau Voir le message
    Oulà ! ça me semble un peu bizarre de vouloir envoyer du XML dans une enveloppe XML mais soit :

    Inclus la chaîne dans <Param> dans une section [CDATA] :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <Param xsi:type="xsd:string">
      <! [CDATA[<?xml version="1.0" encoding="UTF-8"?>
        <API version="1.0">
          <author>A remplir</author>
          <action name="createUser">
            <lastname>coooool34</lastname>
            <uid>sfegsehhse55</uid>
          </action>
        </API>]]>
    </Param>
    J'ai testé malheureusement sans succès. Le but au final est de faire passer un XML, il est vrai, dans une enveloppe XML. J'ai peur que Soap s'embrouille. Mais d'après ce que je vois, il remplacerait les caractères spéciaux...

  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
    Et qu'est-ce que tu "vois" ?? Tout ce que tu peux fournir comme élément, ne te prive pas de le communiquer !
    • Mon blog PHP : http://blog.alterphp.com
    • "Peace cannot be kept by force, it can only be achieved by Understanding" -- Albert Einstein

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Février 2007
    Messages
    229
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 229
    Points : 87
    Points
    87
    Par défaut
    Citation Envoyé par pc.bertineau Voir le message
    Et qu'est-ce que tu "vois" ?? Tout ce que tu peux fournir comme élément, ne te prive pas de le communiquer !
    J'ai finalement réussi par le biais de mon programme de test. Si ça intéresse quelqu'un, voici le programme (tout simple) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    $xml = array('<?xml version="1.0" encoding="UTF-8"?>
    <API version="1.0">
    	<author>A remplir</author>
    	<action name="updateUser">
    		<mail>ofekge22@pouet.fr</mail>
    		<cn>coooool199</cn>
    		<uid>srgdrhrd55</uid>
    	</action>
    </API>');
     
    $client = new SoapClient("http://localhost/soapserver/mywsdl.wsdl");
     
    $return = $client->__soapCall('ExecuteAPI', $xml);
    Merci pour ton aide pc.bertineau

  8. #8
    Expert éminent
    Avatar de berceker united
    Profil pro
    SQL
    Inscrit en
    Février 2005
    Messages
    3 488
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : SQL
    Secteur : Finance

    Informations forums :
    Inscription : Février 2005
    Messages : 3 488
    Points : 6 037
    Points
    6 037
    Par défaut
    J'ai exactement le même problème. Dans ma réponse je balance un XML pour Flex. Je découvre les webservice j'ai n'ai pas trop compris l'astuce ? Dans l'appelle de la méthode tu donne directement un XML balo qui correspond à la même schéma que la réponse de la méthode ?
    Mon avatar ? Ce n'est rien, c'est juste la tête que je fais lorsque je vois un code complètement frappa dingue !...

Discussions similaires

  1. Web services : Client SOAP PHP
    Par clementinemonrency dans le forum XML/XSL et SOAP
    Réponses: 0
    Dernier message: 29/09/2015, 12h35
  2. Web services : Client SOAP PHP
    Par clementinemonrency dans le forum Services Web
    Réponses: 0
    Dernier message: 22/09/2015, 18h10
  3. Web Services :Client SOAP pour un serveur REST
    Par victo dans le forum Services Web
    Réponses: 0
    Dernier message: 03/04/2014, 21h22
  4. Réponses: 6
    Dernier message: 21/04/2009, 10h03

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