设为首页 加入收藏

TOP

C++笔记之【Webservice调用】的那些事
2017-07-05 10:23:25 】 浏览:2569
Tags:笔记 Webservice 调用 那些

一、 前言

C++笔记之【Webservice调用】的那些事,之前的文章中介绍了使用C++实现Webservice的服务端和客户端的通讯,这里再介绍一下如何调用第三方的Webservice服务。

二、 调用Webservice

假如有一个第三方的Webservice地址:http://localhost:2488/Service1.asmx,对应的wsdl文件地址为:

http://localhost:2488/Service1.asmx?WSDL。在写客户端的代码之前,要利用wsdl2h.exe和soapcpp2.exe这

两个工具和wsdl文件生成一些必要的cpp和头文件。

首先运行,cmd,然后打开gsoap\bin\win32,运行wsdl2h.exe
用法:
wsdl2h -o 头文件名 WSDL文件名或URL 例子:
wsdl2h -o test.h http://localhost:2488/Service1.asmx?WSDL可以看到win32里面多了一个test.h文件。

win32里面多了一个头文件test.h之后,在命令行里面运行soapcpp2.exe,
用法:soapcpp2.exe 头文件名
soapcpp2常用选项
-C 仅生成客户端代码
-S 仅生成服务器端代码
-L 不要产生soapClientLib.c和soapServerLib.c文件
-c 产生纯C代码,否则是C++代码(与头文件有关)
-I 指定import路径(见上文)
-x 不要产生XML示例文件
-i 生成C++包装,客户端为xxxxProxy.h(.cpp),服务器端为xxxxService.h(.cpp)。

例子:soapcpp2.exe -C test.h
如果报错:Critical error: #import: Cannot open file "stlvector.h" for reading.
Hint: use option -I (you can define multiple paths separated with ';')
则要要使用-I选项指定gSOAP的 import文件路径,这个路径是"$gsoap\gsoap\import":
soapcpp2.exe -C test.h -I D:\work\gsoap_2.7.13\gsoap-2.7\gsoap\import
这个时候win32目录下会很多有文件生成,如下图:

\

将hellomz.nsmap,soapC.cpp,soapClient.cpp,soapH.h,soapStub.h,
以及gSoap工程根目录下的stdsoap2.h,stdsoap2.cpp,总共七个文件添加到客户端project中,再添加代码:

#include "hellomz.nsmap"

修改soapC.cpp,soapClient.cpp,stdsoap2.cpp的编译条件为不需要预编译头文件,gSoap不需要MFC。
准备工作到现在就全部做好了。各位就按照自己的需要写客户端程序吧。
其实就是调用服务器端的web method啦。

三、 结束

提供Webservice的网站:

webservice 地址:http://www.webxml.com.cn/webservices

实现Webservice,也可以使用MS的SoapToolkit的库调用webservice。

另外,C++调用gsoap实现Webservice通讯,如果出现中文乱码怎么办,其他文章再做介绍。

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇C++操作符重载及实现简单的复数类.. 下一篇单例模式(c++实现)

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目