上篇写了“VS2010使用c++、gSOAP创建的WebService 图文教程”,有创建就要有调用,这里就讲一下相同语言框架技术下的调用功能。

一、下载WSDL文件

这一步其实要以跳过!

上篇中 “五、启动WebService并测试》5、打开浏览器,输入你的IP:端口号/itoa?wsdl 访问看看吧,正常的话应该显示“itoa.wsdl”文件的内容”

我们知道对方提供的WebService地址,理论上就可以通过以上方式取得WSDL文件的内容;我们的实现是通过“itoa?wsdl”来取得WSDL文件的内容,其它的实现或其它语言的实现可能是通过“itoa.wsdl”来获取WSDL文件的内容。

当然,都是c++的,你也可以让对方把这个文件内容发送给你;

二、生成头文件及相关文件

如果你下载的WSDL文件,执行以下步骤:

1、打开CMD命令提示符工具,切换到WSDL所在的目录

2、执行以下命令:

wsdl2h itoa.wsdl

这时后面会有提示:

To finalize code generation, execute:
> soapcpp2 itoa.h
Or to generate C++ proxy and service classes:
> soapcpp2 -j itoa.h

我们再执行:

soapcpp2 -i -I D:\gSOAP\gsoap-2.8\gsoap\import itoa.h

执行后目录中的文件如下:

如果你没有下载的WSDL文件,执行以下步骤:

1、打开CMD命令提示符工具,切换保存生成相关文件的目录

2、生成头文件

wsdl2h -o itoa.h http://localhost:8087/itoa?wsdl

注意:这种方式要保证你的WebService服务在运行中,如果不在同一台电脑上需要将"localhost"改为IP地址,而上篇创建时的头文件中也是改为对应的IP地址!

3、生成代理文件

soapcpp2 -i -C -I D:\gSOAP\gsoap-2.8\gsoap\import itoa.h

三、创建项目

1、打开VS2010,文件》新建》项目

2、左侧模板中选择Visual c++,右侧选择 Win32 控制台应用程序,输入项目名称,选择保存位置,勾选“为解决方案创建目录”,确定

3、下一步

4、取消“预编译头”的选中状态,完成

四、配置编译

1、打开项目文件目录

2、将第二步生成的代码复制到项目目录下

3、添加文件到项目

4、选择要添加到项目的文件

注意:并不是要把所有文件都添加到项目里!需要的文件参考下图,或下载源码!

5、替换“itoaClient.cpp”文件的内容,使用以下代码:

#include "soapitoaProxy.h"
#include "itoa.nsmap"
#include<string>int main()
{ itoaProxy service; double result; if (service.add(111.0, 222.0, result) == SOAP_OK) std::cout << "The sum of 1.0 and 2.0 is " << result << std::endl; elseservice.soap_stream_fault(std::cerr);std::string s2("this is a string");if (service.itoa(12345, s2) == SOAP_OK) std::cout << "The itoa is " << s2 << std::endl; elseservice.soap_stream_fault(std::cerr);service.destroy(); // delete data and release memory
}

6、编译生成,在项目名称上单击鼠标右键,选择重新生成

选择重新生成的好处是避免之前的生成错误影响本次生成的结果

五、运行测试

1、打开CMD命令提示符

2、切换目录到生成输入目录

3、执行命令:itoaClietn.exe

注意:要保证你的WebService服务在运行中!

结束语

有一点需要注意:我这里只是个示例,可能存在内存泄漏之类的不安全问题,包括上篇中的代码!

这个例子只是讲了C++如何基于gSOAP调用WebService的例子,C语言与此方式不同,请参考官方用户手册;

在学习实践的过程中发现命令选项用错一个,或者项目中多包含了一个文件,都可以导致编译链接错误。

本文源码下载:http://download.csdn.net/detail/testcs_dn/9534678

参考:

http://blog.csdn.net/testcs_dn/article/details/51463367

http://www.genivia.com/products.html

http://www.genivia.com/doc/soapdoc2.html

http://www.cppblog.com/qiujian5628/archive/2008/06/19/54019.html

http://www.cppblog.com/qiujian5628/archive/2008/09/16/61945.html

VS2010使用c++、gSOAP调用WebService 图文教程相关推荐

  1. C++利用gSoap调用WebService服务

    最近要利用C++调用WebService接口,中间工具是gSoap,IDE:VS2010,WebService接口:http://webservice.webxml.com.cn/WebService ...

  2. 标准C/C++程序通过gSOAP调用WebService

    一. 环境准备 在本文中,所有程序均在Linux下开发完成,经测试能够正常运行. 在开发过程中,我们需要用到gSOAP,可以从以下网址下载获得:[url]http://www.cs.fsu.edu/~ ...

  3. gsoap 调用 java_Qt5 + gSOAP 调用 Webservice

    开发环境 Win10+Qt5.7+gSOAP2.8.43 使用步骤 1.下载gSOAP 下载地址:https://sourceforge.net/projects/gsoap2/files/ 2.生成 ...

  4. gSoap客户端调用WebService完成后注意内存释放顺序

    gSoap客户端调用WebService完成后注意内存释放顺序 [cpp] view plaincopy //Soap资源清理 soap_destroy(soap_sp.get());  //清理反序 ...

  5. Visual Studio 2017,C++MFC免注册调用大漠插件图文教程,详细版

    Visual Studio 2017,C++MFC免注册调用大漠插件图文教程,详细版 前言 提示:这里可以添加本文要记录的大概内容: 有很多人都在问C++MFC怎么免注册调用?其实这些都有参考但是对于 ...

  6. 系统开发系列 之MyEclipse创建WebService详细教程和调用教程(spring框架+maven+CXF框架)

    1 回顾 [系统开发系列 之MyEclipse创建WebService详细教程和调用教程]介绍了使用JWS实现WebService接口的发布和调用,主要涉及的点有: (1)MyEclipse点击Fil ...

  7. php微信商务平台 红包调用,微信平台红包接口怎么调用?微信支付商户平台红包发放接口调用图文教程[多图]...

    微信平台红包接口怎么调用?估计很多商家都还不太会操作吧?别着急,下面是友情小编搜集相关资料整理出来的微信支付商户平台红包发放接口调用图文教程,希望可以帮到大家,现在就跟随小编一起看看吧!!! 首先,商 ...

  8. NLP之Chatgpt:基于openai框架通过调用API接口实现Chatgpt的吊炸天功能的图文教程(基于python代码实现)、案例应用之详细攻略

    NLP之Chatgpt:基于openai框架通过调用API接口实现Chatgpt的吊炸天功能的图文教程(基于python代码实现).案例应用之详细攻略 导读:2023年1月30日版本更新,以下是最新消 ...

  9. Android基础入门教程——7.4 Android调用WebService

    Android基础入门教程--7.4 Android调用WebService 标签(空格分隔): Android基础入门教程 本节引言: 经过前面的学习,数据请求,数据解析,文件上传下载等,应该满足大 ...

  10. python爬虫教程下载-Python爬虫文件下载图文教程

    而今天我们要说的内容是:如果在网页中存在文件资源,如:图片,电影,文档等.怎样通过Python爬虫把这些资源下载下来. 1.怎样在网上找资源: 就是百度图片为例,当你如下图在百度图片里搜索一个主题时, ...

最新文章

  1. .Net2.0 使用ConfigurationManager读写配置文件
  2. C#反序化json字符串,不用区分大小写
  3. 基于Tomcat7、Java、WebSocket的服务器推送聊天室
  4. VTK:可视化之CornerAnnotation
  5. SAP UI5 sap.ui.vk 命名空间内的控件介绍
  6. xilinx7中管脚mrcc和srcc_Xilinx 7系列FPGA收发器架构之硬件设计指导(一)
  7. Effective C++:条款37:绝不又一次定义继承而来的缺省參数值
  8. win目录挂载到linux目录遇到的小问题
  9. php面向对象封装mysql_PHP mysqli 扩展库(面向对象/数据库操作封装/事务控制/预编译)...
  10. 笔记:live2d4.0 sdk 博客园网页动画
  11. 某国内知名百货公司同城裸光纤/海外专线
  12. 钢笔墨水能否代替打印机墨水_打印机墨水怎么分类?
  13. 《Java高级程序设计》清华大学出版社 徐传远 课后习题答案
  14. 杨澜对话刘韵洁董明珠 :“穷得只有一个梦想”
  15. 前端开发者应该知道的 Centos/Dokcer/Nginx/Node/Jenkins 操作( 长文)
  16. 明解C语言(入门篇)第二章
  17. 【转载】刘未鹏的C++学习历程 + 小诗一首
  18. 骨传导蓝牙耳机哪个好?骨传导蓝牙耳机品牌推荐
  19. vue 请求后台数据
  20. 网易Java开发岗面试分享

热门文章

  1. mi5splus android9,小米5s plus和华为mate9买哪个好 小米5sPlus和华为mate9区别对比评测...
  2. 计算机CPU的常见故障的排除,计算机CPU常见故障与排除.pdf
  3. VRRP配置与维护手册-1
  4. 新老更替选本难 最新CPU显卡参数解析
  5. java js页面提示报警声音
  6. 自媒体文章如何有效提高原创度?
  7. 从零开始用Kotlin结合Jetpack写一个五子棋
  8. HTML5+css+JS实现LOL官网动态页面DW、vscode页眉加轮播图
  9. 基于单片机的热敏电阻测温设计
  10. 用NE5532运算放大器制作降噪耳机