C++使用gsoap对接SOAP webservices

C/C++调用Web Service需要用到soap库,一般使用的有gsoap和axis cpp两种实现,这里使用gsoap来调用。gsoap是sourceforge上的一个开源项目,可跨平台使用。本文只讲述windows下使用方法

gsoap使用步骤:

  • 获取gsoap
    下载地址 gsoap_2.8.55.zip
    使用方法
  • 生成头文件
    解压后进入/gsoap-2.8/gsoap/bin/win32,打开命令行窗口运行

wsdl2h -I "gsoap所在目录/gsoap/WS" -o quote.h -t "gsoap所在目录/gsoap/typemap.dat" webservices地址(若有多个可填写多个,用空格隔开)
例子:
wsdl2h -I "gsoap所在目录/gsoap/WS" -o quote.h -t "gsoap所在目录/gsoap/typemap.dat" http://www.webxml.com.cn/WebServices/WeatherWebService.asmx?wsdl

  • 生成其他文件

soapcpp2 -I "gsoap所在目录/gsoap/import" quote.h

  • 若使用QT需要在pro文件中加入

QT += network
INCLUDEPATH += gsoap所在目录/gsoap/
LIBS += -L . -l ws2_32

C++使用gsoap对接SOAP webservices_第1张图片

拷贝出相关文件如上图。

  • 代码中的使用方法:
    server_USCOREmywsdlBinding 为生成的类,ns1__add_USCORElocation_USCOREdata为方法。

server_USCOREmywsdlBinding q;
std::string r;
q.ns1__add_USCORElocation_USCOREdata(arg1, r)

你可能感兴趣的:(C++使用gsoap对接SOAP webservices)