最近项目开发使用到gsoap,在百度上搜索到的都是千篇一律的文章,没有一篇能准确全面的解释如何使用gsoap做客户端与服务端应用开发。
最准确全面的文档当然是官方的用户开发手册:
http://www.cs.fsu.edu/~engelen/soapdoc2.html
找了很多文章,最后还是官方手册解决了我的大部分疑问。
再贴出客户端向服务端请求的简单小demo,这个demo就是参考手册中的例子调试通过的。
说明一下用wsdl2h生成头文件calc_cpp.h:
wsdl2h -o calc_cpp.h calc.wsdl
需要注意的,在calc_cpp.h中,下面这一段并不是注释,//gsoap对wsdl2h、soapcpp2来说是一个命令:
//gsoap ns2 service name: calc1123
//gsoap ns2 service type: calcPortType
//gsoap ns2 service port: http://192.168.91.182:8080/
//gsoap ns2 service namespace: urn:calc
//gsoap ns2 service transport: http://schemas.xmlsoap.org/soap/http
wsdl中service块中的定义:
<service name="calc">
<documentation>gSOAP 2.7.9k generated service definition</documentation>
<port name="calc" binding="tns:calc1123">
<SOAP:address location="http://192.168.91.182:8080/"/>
</port>
</service>
根据头文件生成cpp
生成服务端开发包:
./soapcpp2 -i -S calc_cpp.h
生成客户端开发包:
./soapcpp2 -i -C calc_cpp.h
soapcpp2生成的客户端文件: