zoukankan      html  css  js  c++  java
  • C++客户端通过gSOAP调用WebService

    webService三要素:

    SOAP(Simple Object Access Protocol)、WSDL(WebServicesDescriptionLanguage)、UDDI(UniversalDescriptionDiscovery andIntegration)。 SOAP用来描述传递信息的格式, WSDL 用来描述如何访问具体的接口, UDDI用来管理,分发,查询webService 。SOAP 可以和现存的许多因特网协议和格式结合使用,包括超文本传输协议(HTTP),简单邮件传输协议(SMTP),多用途网际邮件扩充协议(MIME)。它还支持从消息系统到远程过程调用(RPC)等大量的应用程序。SOAP使用基于XML的数据结构和超文本传输协议(HTTP)的组合定义了一个标准的方法来使用Internet上各种不同操作环境中的分布式对象。

    gSOAP:
    1. wsdl2h.exe:
    We use the gSOAP ‘wsdl2h’ WSDL parser to obtain the gSOAP header file specification of a Web service from a WSDL document.
    完成 wsdl文件(.wsdl)到头文件(.h)的转换,即由写好的wsdl格式的接口定义文件转换为C/C++格式的头文件。
    2. soapcpp2.exe:
    根据接口头文件生成应用程序客户端和服务端的框架文件(soapClient.cpp、soapServer.cpp等)。

    计算器示例:
    wsdl文件URL地址:http://www.cs.fsu.edu/~engelen/calc.wsdl
    a) 程序->运行 输入cmd 启动命令行;
    b) cd到wsdl2h.exe所在文件路径;
    c) 输入:wsdl2h.exe -o cal.h http://www.cs.fsu.edu/~engelen/calc.wsd
    -c代表转化成C代码。
    -s代表不使用STL,取而代之需要在工程中包含stdsoap2.h和stdsoap2.cpp。
    -o file代表指定输出文件名称。具体:wsdl2h.exe -h
    d)soapcpp2.exe -i cal.h
    -C代表生成客户端代码。
    -S代表生成服务端代码。
    -L代表不生成soapClientLib/soapServerLib
    -c代表仅生成c代码 -i代表使用Proxy
    通常情况下使用命令soapcpp2 –S/-C –L -i xxx.h
    生成如下文件:
    生成文件

    建立新控制台应用程序:
    添加到项目的文件
    calctest.cpp代码:

    #include<iostream>
    #include"soapcalcProxy.h"
    #include"calc.nsmap"
    
    using namespace std;
    
    int main()
    {
        calcProxy cal;
        double result = 0;
        if (SOAP_OK==cal.add(1, 2, result))
        {
            cout << result << endl;
        }
        system("pause");
        return 0;
    }

    各文件简介:
    文件简介

  • 相关阅读:
    go 字符串拼接
    go中字符串的切片和索引使用
    golang 日志输出到指定位置代码
    go命令手动加载所有的安装包
    gin框架入门前后端gin-admin开源项目学习
    go container/list双向链使用实例
    使用 container/list 包 手写实现一个双向链表,将 101、102 和 103 放入其中并打印出来
    Hibernate基础增删改查语法
    Eclipse集成Hibernate操作Sqlserver实例
    sqlserver存储过程批量插入数据
  • 原文地址:https://www.cnblogs.com/ggzone/p/4429923.html
Copyright © 2011-2022 走看看