Existe-t-il des alternatives légères à gSOAP?
J'ai essayé d'utiliser gSOAP pour accéder à un service web (par exemple, l'aide fournie WSDL pour générer du C talons et puis de les utiliser dans une application). Cependant, j'ai trouvé que le .c et les fichiers objets est assez grande (plusieurs méga-octets), ce qui est un problème en environnement embarqué, où je travaille.
Savez-vous de plus simple SAVON bibliothèques, ou dois-je revenir à XML générique générateurs et analyseurs comme ezXML?
source d'informationauteur che
Vous devez vous connecter pour publier un commentaire.
Je me suis récemment penché sur cette question aussi, et la meilleure option que j'ai trouvé était gSOAP, il est très mature et bien testé. Cependant, j'ai décidé d'aller un non-SAVON route, qui était une option depuis que je suis sur les deux côtés client et serveur. Avant d'utiliser gSOAP, assurez-vous que vous pouvez vivre avec leur licence, vous pouvez être obligé de libérer votre code ou de les payer, selon la façon dont vous l'utiliser.
Une autre option est d'Apache Axis2/Cmais je n'ai aucune expérience avec elle (je suppose qu'il a une taille similaire empreinte de gSOAP). Leur client API est ici. Un tutoriel sur l'API du client est ici.
Si vous décidez d'aller de l'XML analysé la route, vous pourriez être intéressé par cette DONC, la question (voir les réponses).
Vous pouvez aussi regarder boost::spirit pour l'analyse de l'itinéraire. Il a la capacité de faire des petits, rapides, spécialisé (et en général) des analyseurs, si vous êtes à l'aise avec le C++ (ils peuvent être écrits pour être réentrant, donc un en les appelant par l'intermédiaire d'un objet statique avec une extern "C" de l'interface est casher). Je peux témoigner pour elle dans le sens général (non spécifique au format XML). Courbe d'apprentissage abrupte, mais grand profit.
Est-ce un service web que vous êtes en train de créer? Si oui, envisagez d'utiliser RESTE au lieu du SAVON. RESTE est beaucoup plus simple, et vous pouvez utiliser l'existant, testé, fonctionne à présent gestionnaires HTTP au lieu de passer par un énorme HTTP - XML - SOAP couche de traduction.
Si vous consommez de quelqu'un d'autre service web, examinez le schéma SOAP et/ou des exemples de réponses. Je ne peux pas croire que je préconise, mais si le schéma n'est pas extensible ou récursive, vous pouvez être mieux à l'aide d'un simple analyseur LALR ou même de la chaîne de mise en correspondance dans les premières réponses HTTP au lieu d'essayer d'analyser SOAP ou XML. C'est beaucoup plus simple à mettre en œuvre dans incorporé C.
Habituellement, nous retombons à la création d'directement le XML (surtout par la concaténation de chaîne) où aucune bonne bibliothèque SOAP peut être utilisé.
Une autre solution pourrait être que vous passez en JSON, qui (généralement) moins de frais généraux et de demande/réponse tailles de sorte qu'il pourrait être mieux intégré de programmes. Si vous avez seulement un WebService SOAP disponibles vous pouvez utiliser un Script de proxy sur le Serveur qui se traduit par JSON Demandes de SAVON Requêtes et Réponses SOAP de Réponses JSON.
Avez-vous regardé Apache CXF. Il dispose de plusieurs mode de génération de code caractéristiques
Un guide plus utile de construire un consommateur est ici.