Bonjour à tous,
Je suis en train de faire un petit programme de validation de mail. Lors de l'appel au service web, je peux lui indiquer plusieurs adresses comme suit :
En retour, le service doit me retourner quelque chose comme cela :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 <soapenv:Body> <ema:checkRecipient> <email>email1@toto.com</email> <email>email2@toto.com</email> </ema:checkRecipient> </soapenv:Body>
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 <SOAP-ENV:Body> <ns1:checkRecipientResponse> <checkRespons> <email>email1@toto.com</email> <smtpCode>0</smtpCode> <smtpTrans></smtpTrans> <smtpReply></smtpReply> <emailReply></emailReply> </checkRespons> <checkRespons> <email>email1@toto.com</email> <smtpCode>0</smtpCode> <smtpTrans></smtpTrans> <smtpReply></smtpReply> <emailReply></emailReply> </checkRespons> </ns1:checkRecipientResponse> </SOAP-ENV:Body>
J'ai préparé le wsdl avec eclipse et le code "de base" est généré via wsdl2h et soapcpp2.
Pour la lecture des adresses en entrée, pas de problème. Pour la préparation du résultat, je coince...
Le proto de cette fonction est le suivant :
La classe _ns1__checkRecipientResponse contient un vecteur de __ns1__checkRecipientResponse_sequence qui lui même contient une classe ns1__checkResponsType contenant les éléments de réponses (smtpCode,....)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 int __ns1__checkRecipient(struct soap* soap, _ns1__checkRecipient * request, _ns1__checkRecipientResponse &reponse)
Je pensais m'en sortir en :
- instanciant un __ns1__checkRecipientResponse_sequence
- en lui alimentant les données de ns1__checkResponsType
- et enfin, un push_back dans _ns1__checkRecipientResponse par adresse en entrée.
Mais rien ne se passe comme prévu. En debug, l'objet reponse n'est pas modifié.
J'avais toujours eu une utilisation assez basique de soap et des vecteurs. Pour le coup je suis coincé.
Je joins une archive contenant le wsdl et le code généré par gsoap.
Si quelqu'un pouvait m'aiguiller sur la façon de procéder, ce serait génial.
Merci d'avance.
Partager