Je suis à la recherche d'une simple bibliothèque client WebService C++ qui peut être facilement liée à mon application.Bibliothèque client générique WebService (SOAP) pour C++
De préférence, cette bibliothèque:
- peut être utilisé pour accéder à tous les WebService SOAP (donc je peux passer l'URL, le nom WebService, la méthode WebService et tous les arguments comme arguments à un appel de fonction)
- peuvent être liés statiquement dans une application C++ (donc pas de DLL)
- est un logiciel gratuit ou disponible à un faible coût
- peut être utilisé sans droits dans mon application
- peut interroger le servic Web e pour son WSDL et me renvoyer les noms de méthodes disponibles, les arguments des méthodes et leurs types de données
Avant que quelqu'un d'entre vous répond .NET: été là, essayé. Mes principales objections contre .NET sont:
- vous pouvez générer le proxy, mais il est impossible de changer le nom WebService dans le code proxy généré par la suite, étant donné que .NET utilise la réflexion pour vérifier le nom WebService (voir Dynamically call SOAP service from own scripting language pour ma question en ce qui concerne ce problème)
- générer la classe proxy à la volée ne semble pas toujours fonctionner correctement
Je l'ai déjà utilisé Google pour rechercher cette information, mais je ne pouvais pas trouver un.
Merci
EDIT: Pour clarifier plus loin, je veux vraiment quelque chose où je peux écrire du code comme celui-ci (ou quelque chose dans ce style):
SoapClient mySoapClient;
mySoapClient.setURL("http://someserver/somewebservice");
mySoapClient.setMethod("DoSomething");
mySoapClient.setParameter(1,"Hello");
mySoapClient.setParameter(2,12345);
mySoapClient.sendRequest();
string result;
mySoapClient.getResult(result);
Aucune génération de code dynamique.
C'est un bon point! Pensez-vous qu'il peut être porté vers l'environnement C++ Builder? Ou est-ce dépendant de .NET et de Reflection? – bluish
@bluish, cela dépend vraiment de .Net. Le code utilise .Net pour générer la classe client, puis utilise le compilateur .Net C# pour le compiler et utilise la réflexion .Net pour appeler la classe. – Patrick
Bien que je suis heureux que le problème de l'OP est résolu, je crois que cette réponse ne peut simplement pas être la réponse acceptée de cette question, car il est en C# alors que la question est spécifiquement sur C++ ... – zgyarmati