gpt4 book ai didi

c++ - C++ 的 Web 服务客户端库

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:21:31 27 4
gpt4 key购买 nike

我想为 Windows 上的项目实现一个 Web 服务客户端。我想获取网络服务信息、soap 请求和 soap 响应。我需要一个可用于这些目的的 C++ 库(不是 wsdlpull)。

要求:

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

更具体地说:图书馆应该有像这样的简单调用来获取网络服务信息

invoker.getOperations(operations);

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

谢谢。

最佳答案

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

使用 wsdl2h 将 XML 模式映射到 C/C++。它有很好的文档和包中的大量示例。也可以找到文档online .您可以轻松地将您的代码移植到许多操作系统(linux、windows 等)

通过 Web 服务(调用代码)添加到数字的简单示例

#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);
}

使用 gsoap 分两步完成工作

  1. 首先从 WSDL 创建 stub (如 wsdl2java)
  2. 然后用你的对象调用 stub

如果你想创建你的服务(充当服务器,而不仅仅是客户端代码),这也是一个很好的框架

关于c++ - C++ 的 Web 服务客户端库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9097831/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com