Bonjour,
Je n'ai jamais utilisé de web services jusqu'à maintenant, mais un client nous fait une demande particulière à laquelle je dois répondre assez rapidement.
Celui-ci a des automates qui sont capables d'envoyer des relevés par requêtes SOAP et il aimerait que cela génère des saisies automatiques dans la base de données de notre logiciel...

Typiquement leur requête serait du type :
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:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:myur="http://myURI.org">
   <soapenv:Header>
      <myur:securityHeader>
         <myur:username>Thibaut</myur:username>
         <myur:password> TVyap2P/voFTU0qg1bZe5dMvu9s=</myur:password>
      </myur:securityHeader>
   </soapenv:Header>
   <soapenv:Body>
      <myur:getEventTLGRequest>
         <myur:sourceId>123</myur:sourceId>
         <myur:eventId>4598</myur:eventId>
         <myur:eventNature>2</myur:eventNature>
         <myur:eventDescription>Power supply back</myur:eventDescription>
         <myur:eventDate>01/07/2011 18:08:35</myur:eventDate>
      </myur:getEventTLGRequest>
   </soapenv:Body>
</soapenv:Envelope>
J'ai cherché sur le net pour voir des tutoriaux...A priori, je vois un peu comment faire un web service avec la mise en place des fonctions...mais les exemples que j'ai vu sont souvent juste une fonction sans paramètres ou avec un ou deux paramètres integer ou chaines.

Comment procède-t-on avec une requête SOAP ? Dans mon cas, je dois vérifier que l'entête correspond bien à un utilisateur identifié dans la base (avec son mot de passe crypté) et faire un insert dans la base avec les valeurs de champs du corps XML...Seulement comment fait-on ? Côté serveur, comment réceptionne-t-on une telle requête (en tête/corps XML) ?

Je ne m'inquiète pas sur le traitement d'identification/décodage et d'injection dans la base, mais plutôt sur comment mettre une/des fonction(s) en vis-à-vis de la requête ? Merci d'avance !