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目录找:


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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,833评论 19 139
  • 160930 早上的MOP课分组,因为整个课程中国人太多,所以没有被安排进有外国同学的组别,心里着实不开心,总是离...
    XxXxXxN阅读 656评论 1 1
  • indifference
    李年阅读 1,342评论 0 0
  • 好像好久没有写点什么,在火车上突然觉得应该说点什么纪念一下这短日子。你说从可能不会再喜欢一个人到开始就二十几天。我...
    旅行在路上1993阅读 1,328评论 0 1
  • 那晚,在她将手机调至静音准备睡觉的前一刻,他的电话打了进来。他说,他正在她所在城市的机场。他回国探亲,返程正巧从这...
    树的独白阅读 4,569评论 0 2

友情链接更多精彩内容