1
5
我最近也研究过这个问题,我发现最好的选择是gsoap,它非常成熟,经过了很好的测试。但是,我决定使用非soap路由,这是一个选项,因为我同时在客户端和服务器端。在使用gsoap之前,请确保您可以使用他们的许可证,您可能不得不发布您的代码或支付他们,这取决于您如何使用它。 另一个选择是apache Axis2/C ,尽管我没有经验(我猜它的足迹大小与gsoap相似)。他们的客户端api是 here . 关于客户端api的教程是 here . 如果您决定使用解析的xml路径,您可能会对 this 所以问(见答案)。 您还可以检查boost::spirit以获取解析的路径。它有能力制作小的、快速的、专业化的(和一般的)解析器,如果您对C++感到满意(它们可以被写入可重入的,那么通过一个带有外部的C对象的静态对象调用它们是KOSEER)。我可以从一般意义上担保(不是特定于xml)。学习曲线陡峭,但回报巨大。 |
2
2
这是您正在创建的Web服务吗?如果是,考虑使用 REST 而不是肥皂。rest要简单得多,您可以使用现有的、经过测试的、正在工作的http处理程序,而不是经过一个巨大的http-xml-soap转换层。 如果您正在使用其他人的web服务,请检查soap模式和/或响应示例。我不敢相信我提倡这样做,但如果模式不可扩展或递归,那么最好使用简单的lalr解析器,甚至在原始http响应中使用字符串匹配,而不是尝试解析soap或xml。这在嵌入式C中实现起来要简单得多。 |
3
1
通常我们会回到直接创建xml(主要是通过字符串连接)的过程中,在这里不能使用好的soap库。 另一个解决方案可能是切换到json,它(通常)具有较小的开销和请求/响应大小,因此在嵌入式程序中会更好。如果只有soap webservice可用,那么可以在服务器上使用代理脚本,该脚本将json请求转换为soap请求,将soap响应转换为json响应。 |
4
1
你看过吗 Apache CXF . 它有几个代码生成器特性
一个更有用的建立消费者的指南是 here . |
Community wiki · C中有哪些耗时的操作? 1 年前 |
Community wiki · 将所有处理器电源都投入到任务中 1 年前 |
Community wiki · C++为C添加了什么?[已关闭] 1 年前 |
Community wiki · 打印1到1000,不带循环或条件 1 年前 |