-
Parser une requête SOAP
Bonjour,
Je voulais savoir qu'elle serait la méthode adéquate pour de récupérer la partie soapEnv:Body d'une requête soap et d'en extraire ensuite les données utiles par exemple dans une table de hachage ou un tableau et ceci en C.
Je précise que je ne souhaite pas utiliser de parser déjà fait dans le sens où je n'ai pas besoin d'un bazooka pour tuer une mouche :D
Juste récupérer une partie du message et la traiter.
Merci beaucoup
-
Si tant est que tu ais encore le problème, je ne vois pas d'autre moyen que :
- scanner la chaîne de caractère jusqu'à trouver la sous-chaîne "<soapenv:body",
- continuer jusqu'à trouver ">", le caractère suivant sera alors le début de ton body,
- continuer jusqu'à trouver "</soapenv:body>", le caractère précédent sera alors le fin de ton body.
Dis comme ça, c'est pas propre, mais en même temps sans parseur, je vois pas d'autres moyens...
Alors je vais quand même te proposer non pas un bazooka mais un sous-marin nucléaire : gSOAP qui à partir du WSDL, te génère des sources C ou C++ qui se feront la joie de réceptionner la requête HTTP(S) et de la parser pour toi :D
2 remarques :
- l'outil est assez comlplexe pour un seul projet simple, mais si le SOAP devient une habitude, l'investissement vaut le coup, et tu gagneras du temps,
- si ton WSDL évolue dans le temps, il faudra que tu regénéres les sources par gSOAP et donc recompiler...