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

Langage PHP Discussion :

galere sur le montage d'un service web


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Avatar de Jcpan
    Inscrit en
    Août 2008
    Messages
    542
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 542
    Par défaut galere sur le montage d'un service web
    Bonjour

    Je galère depuis 2 jours pour monter un service web et comprendre les principes en php. néanmoins j'ai plus envie de comprendre trop, je me limite au fonctionnement, la seule source fiable à propos du sujet que j'ai trouvé est

    http://wiki.sos-admin.com/wiki/Servi...c_PHP5_et_SOAP

    fichier 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
     
    <?xml version ='1.0' encoding ='UTF-8' ?>
    <definitions name='MxProtect'
      targetNamespace='http://example.org/MxProtect'
      xmlns:tns=' http://example.org/MxProtect '
      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/'>
     
     
     
      <message name='MxProtectQueueSpamRequest'>
      <part name='From' type='xsd:string'/>
      <part name='To' type='xsd:string'/>
      <part name='Subject' type='xsd:string'/>
      <part name='Date' type='xsd:int'/>
      <part name='Message' type='xsd:string'/>
    </message>
    <message name='MxProtectQueueSpamResponse'>
      <part name='Result' type='xsd:int'/>
    </message>
     
     
     
     
     <portType name='MxProtectPortType'>
     
     
      <operation name='MxProtectQueueSpam'>
        <input message='tns:MxProtectQueueSpamRequest'/>
        <output message='tns:MxProtectQueueSpamResponse'/>
      </operation>
     
     
     
     </portType>
     
     <binding name='MxProtectBinding' type='tns:MxProtectPortType'>
       <soap:binding style='rpc'
         transport='http://schemas.xmlsoap.org/soap/http'/>
     
    	 <operation name='MxProtectQueueSpam'>
        <soap:operation soapAction='urn:MxProtectQueueSpam'/>
        <input>
          <soap:body use='encoded' namespace='urn:MxProtect'
            encodingStyle='http://schemas.xmlsoap.org/soap/encoding/'/>
        </input>
        <output>
          <soap:body use='encoded' namespace='urn:MxProtect'
            encodingStyle='http://schemas.xmlsoap.org/soap/encoding/'/>
        </output>
      </operation>
     
     
     </binding>
     
     <service name='MxProtectService'>
       <port name='MxProtectPort' binding='MxProtectBinding'>
         <soap:address location='http://localhost/monwebservice/MxProtect.php'/>
       </port>
     </service>
    </definitions>

    fichier serveur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <?php
     
    function MxProtectQueueSpam($From, $To, $Subject, $Date, $Message)
    {
           //  Retourne un entier (int)
            return 23;
    }
     
    ini_set(soap.wsdl_cache_enabled, 0); // desactive le cache WSDL
    $server = new SoapServer('MxProtect.wsdl');
    $server->addFunction('MxProtectQueueSpam');
    $server->handle();
    fichier client
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <?php
     
    // Une fois que votre le dev est termine, pensez a re-activer le cache
    // en supprimant ou en commantant cette ligne
    ini_set("soap.wsdl_cache_enabled", "0"); // desactive le cache WSDL
     
    $client = new SoapClient('MxProtect.wsdl');
    echo $client->MxProtectQueueSpam('from@example.org',
                                     'to@example.net',
                                     'Example mail',
                                     time(),
                                     "From: from@example.org\nTo: to@example.net\nSubject: Example mail\n\nbody of my example\n\nDaviXX\n"
                                    );
    ?>
    mais là j'ai pas compris une chose, le fichier client ne fait pas appel directement au serveur directement, donc est ce que c'est le fichier wsdl qui se charge d'exécuter le fichier du serveur ?

    si non c'est quoi la différence entre


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $client = new SoapClient("some.wsdl");
    et

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $client = new SoapClient(null, array('location' => "http://localhost/soap.php",
                                         'uri'      => "http://test-uri/"));

    Merci d'avance

  2. #2
    Membre émérite

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

    Informations forums :
    Inscription : Juin 2004
    Messages : 772
    Par défaut
    Bonjour,

    A la fin de ta wsdl tu trouves ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <service name='MxProtectService'>
       <port name='MxProtectPort' binding='MxProtectBinding'>
         <soap:address location='http://localhost/monwebservice/MxProtect.php'/>
       </port>
     </service>
    C'est grâce à ces lignes que le client suivant retrouve le script à "attaquer" :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $client = new SoapClient("some.wsdl");


    L'autre forme d'initialisation du client que tu montres où l'on spécifie le script serveur permet de se passer de la WSDL côté client. Elle implique cependant que tu connaisses exactement ce que tu dois envoyer et ce que tu reçois...

Discussions similaires

  1. Comment sur le LAN accéder aux services Web avec IP privée?
    Par guygox dans le forum Développement
    Réponses: 4
    Dernier message: 25/09/2012, 09h52
  2. Législation sur l'utilisation détournée de services web tiers
    Par Aquanum dans le forum Débats sur le développement - Le Best Of
    Réponses: 10
    Dernier message: 05/05/2011, 14h08
  3. Requête sur une ontologie via un service Web
    Par naima2005 dans le forum Web sémantique
    Réponses: 2
    Dernier message: 26/02/2011, 20h23
  4. Chemin relatif sur un fichier dans un service web
    Par Yoteco dans le forum Services Web
    Réponses: 0
    Dernier message: 07/01/2011, 14h40
  5. CORBA ou Services Web sur systèmes embarqués
    Par alora dans le forum CORBA
    Réponses: 2
    Dernier message: 26/02/2006, 23h22

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