您当前的位置: 首页 >  c++

phymat.nico

暂无认证

  • 2浏览

    0关注

    1967博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

C++调用WebService

phymat.nico 发布时间:2015-01-08 09:39:15 ,浏览量:2

  1. gSOAP是一个开源的项目,用它可以方便的使用c/c++地进行SOAP客户端和服务器端编程,而不必了解xml和SOAP协议的细节       wsdl2h.exe: 编译wsdl文件生成c/c++头文件       -o 文件名,指定输出头文件       -n 名空间前缀 代替默认的ns       -c 产生纯C代码,否则是C++代码       -s 不要使用STL代码   达内就业     -t 文件名,指定type map文件,默认为typemap.dat       -e 禁止为enum成员加上名空间前缀       soapcpp2.exe: gSOAP编译器,编译头文件生成服务器和客户端都需要的c/c++文件(默认使用STL,需要stlvector.h)       -C 仅生成客户端代码       -S 仅生成服务器端代码       -L 不要产生soapClientLib.c和soapServerLib.c文件       -c 产生纯C代码,否则是C++代码(与头文件有关)       -I 指定import路径(见上文)       -x 不要产生XML示例文件       -i 生成C++包装,客户端为xxxxProxy.h(.cpp),服务器端为xxxxService.h(.cpp)              2. 生成存客户端存根程序和框架       wsdl2h -o xxx.h xxx.wsdl(-t D:/gsoap-2.7/gsoap/typemap.dat)       soapcpp2 -L -x -i xxx.h(-I D:/gsoap-2.7/gsoap/import)              3. 或直接自己编写xxx.h,并生成xxx.wsdl       //gsoap ns service name: xxx       //gsoap ns service style: rpc       //gsoap ns service encoding: literal       //gsoap ns service location: http://localhost:8080       //gsoap ns schema namespace: http://localhost:8080/xxx.wsdl       int ns__add(int a, int b, int* result);              3. 客户端       1) 把如下生成的文件添加到项目:       stdsoap2.h,stdsoap2.cpp,       soapH.h,soapC.cpp,soapStub.h,       soapxxxProxy.h,soapxxxProxy.cpp,xxxSoap.nsmap       wsock32.lib              2) 代理方式调用       #include "soapTestWebServiceProxy.h"       #include "TestWebService.nsmap"       int main(int argc, char* argv[])       {        int result = 0;        TestWebServiceProxy proxy;        proxy.add(12, 23, &result);       }  //www.sctarena.com            4. 服务端       1) 把如下生成的文件添加到项目:       stdsoap2.h,stdsoap2.cpp,       soapH.h,soapC.cpp,soapStub.h,       soapxxxService.h,soapxxxService.cpp,xxxSoap.nsmap       wsock32.lib              2) 实现接口函数       int TestWebServiceService::add(int a, int b, int *result)       {        *result = a+b;        return SOAP_OK;       }  //www.m6wang.com            3) 开启服务       #include "soapTestWebServiceService.h"       #include "TestWebService.nsmap"       int main(int argc, char* argv[])       {        TestWebServiceService service;        service.run(8080);       } 
关注
打赏
1659628745
查看更多评论
立即登录/注册

微信扫码登录

0.0432s