用于C++的Web服务客户端库

csk*_*csk 5 c++ wsdl gsoap webservice-client

我想在Windows上为项目实现Web服务客户端.我想获得网络服务信息,肥皂请求和肥皂响应.我需要一个可以用于这些目的的C++库(而不是wsdlpull).

要求:

  • 应该是一个C++库
  • 可用于访问任何SOAP Web服务(因此我可以将URL,Web服务名称,Web服务方法和所有参数作为参数传递给函数调用)
  • 可以在Web服务中查询其WSDL,并返回可用的方法名称,方法的参数及其数据类型
  • 简单的doucmentation

更具体一点:库应该有这样的简单调用来获取Web服务信息

invoker.getOperations(operations);

outputXml += "<?xml version=\"1.0\" encoding=\"utf-8\" ?>\n";
outputXml += "<webService";
outputXml += " name=\"" + GetServiceName(&invoker) + "\"";
outputXml += ">\n";
outputXml += "\t<webMethods>\n";
Run Code Online (Sandbox Code Playgroud)

谢谢.

cat*_*eof 7

C/C++ Web服务的行业标准是gsoap.http://www.cs.fsu.edu/~engelen/soap.html

使用wsdl2h将XML Schema映射到C/C++.它具有良好的文档和包中的大量样本.Doc也可以在线找到.您可以在许多操作系统(Linux,Windows等)中轻松移植代码

通过Web服务添加到号码的Simpe示例(调用代码)

#include "soapH.h"
#include "calc.nsmap"
main()
{
   struct soap *soap = soap_new();
   double result;
   if (soap_call_ns__add(soap, 1.0, 2.0, &result) == SOAP_OK)
      printf("The sum of 1.0 and 2.0 is %lg\n", result);
   else
      soap_print_fault(soap, stderr);
   soap_end(soap);
   soap_free(soap);
}
Run Code Online (Sandbox Code Playgroud)

使用gsoap,您可以分两步完成工作

  1. 首先从WSDL创建存根(如wsdl2java)
  2. 然后用对象调用存根

如果您想创建服务(作为服务器,而不仅仅是客户端代码),也是优秀的框架