在开发客户端程序前,需要使用前面提到的两个工具生成一些必要的文件。
首先使用wsdl2h生成头文件。用法:
wsdl2h -o 头文件名 WSDL文件名或URL
这时会生成一个头文件。(网上很多是wsdl2h -c...,尝试后发现有问题)
接下来使用soapcpp2生成相应源码。用法:soapcpp2 头文件名
soapcpp2常用选项
-C:仅生成客户端代码 -S:仅生成服务端代码 -L:不要产生soapClientLib.c和soapServerLib.c文件 -c:产生纯C代码,否则是C++代码(与头文件有关) -I:指定import路径 -x:不要产生XML示例文件 -i:生成C++包装,客户端为*Proxy.h(.cpp),服务端为*Service.h(.cpp)注:如果报错: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\share\gsoap\import"(linux,gSOAP2.7): soapcpp2 -C test.h -I /usr/local/gSOAP/share/gsoap/import
将生成的nsmap、h和cpp文件以及gSOAP安装目录下的stdsoap2.h和stdsoap2.cpp共7个文件添加到客户端工程中,再添加代码:
#include "*.nsmap"
到这里,编写客户端之前的准备工作都已经完成了,剩下的就是调用服务端的web method进行客户端编程了。