环境:ubuntu gcc gsoap
gsoap:是c/C++调用webservice服务的一种框架结构。
1,安装基础组件:
sudo apt-get install flex bisonsudo apt-get install libtool
sudo apt-get install zlib1g-dev
sudo apt-get install openssl
sudo apt-get install libssl0.9.8
sudo apt-get install libssl-dev
2,下载并安装gsoap源代码
tar -xvf gsoap_2.8.7.zip
./configure
make
make install
3,生成本地存根
wsdl2h -c -o web_service.h [URL]?wsdl
soapcpp2 -c -C web_service.h
此时,会在当前目录生成soapC.c soapClient.c soapClientLib.c sopah.h soapStub.h *.xml *.nsmap 文件。
4,编写代码并调用服务
struct soap sp;
struct _ns1__GetResultByADCode param;
struct _ns1__GetResultByADCodeResponse response;
struct xsd__base64Binary soundData;
soundData.__size=10;
soap_init(&sp);
param.adCode="";
param.appID="";
param.data=&soundData;
param.appVersion="";
param.language="";
param.latitude="";
param.macID="";
param.mapType="";
param.mobileNum="";
param.mobileType="";
param.requestType="";
param.resultType="";
param.userID="";
if(soap_call___ns2__GetResultByADCode(&sp,NULL,NULL,¶m,&response)==SOAP_OK)
{
printf("StatusCode:%s\n",response.GetResultByADCodeResult->StatusCode);
printf("Result:%s\n",response.GetResultByADCodeResult->Result);
}
else
{
printf("call webservice error! \n");
}
soap_destroy(&sp);
soap_end(&sp);
soap_done(&sp);
5,添加静态库 libgsoap.a
6,编译并调用输出