C++调用webservice接口整理记录

初始材料:WSDL文件,gsoap_2.8.40,浏览器(查阅用....)
目的材料:调用webservice的接口(WS-Security验证)

步骤:
1.通过gsoap生成接口代码文件

wsdl2h.exe -t typemap.dat -s -o  temp.h source.wsdl

2.关键的一步,因为这步让我卡住好几天,压力贼大
修改temp.h文件引入WS-Security需要的东西

  #import "wsse.h"

3.生成接口代码文件

  soapcpp2.exe  -j -x -C -L temp.h -I K:\import

4.将生成的代码文件和以下几个文件引入项目,具体位置可在gsoap目录、plugin目录、import目录找:


C++调用webservice接口整理记录_第1张图片
image.png

注意!

有一些文件如smdevp.c, mecevp.c, wsseapi.c,需要把后缀名改成.cpp,此处的坑是:stdsoap2.h :expected specifier-qualifier-list before 'XXX'

5.编译选项加上 -DWITH_DOM 和 -DWITH_OPENSSL ,此处的坑我是找不到头文件,编译选项也要加上头文件所在目录。不明白可以复习一下-I,-L,-l三个的区别。
6.调用接口的地方引入

  #include "soapH.h"
  #include "XXXServiceHttpBindingProxy.h"
  #include "XXXServiceHttpBinding.nsmap"
  #include "wsseapi.h"

7.调用接口之前调用:

soap_wsse_add_UsernameTokenText(soap, "Id", "username", "password");

主要参考文档:https://www.genivia.com/doc/wsse/html/wsse.html

你可能感兴趣的:(C++调用webservice接口整理记录)