C++: gsoap 使用调用 webservice

目录

1、下载

2、环境变量设置

3、头文件生成

4、编译文件生成

​5、文件依赖

6、demo


服务协议:

  • wcf basicHttpBinding content-type    text/xml;charset=utf-8

  • wsHttpBinding  'application/soap+xml; charset=utf-8'

  • webHttpBinding 'application/x-www-form-urlencoded'

WSDL 文件信息:

轻松读懂 wsdl 文件信息

常见问题:

wcf问题集锦

版本 1.1 实例:

C++ (使用gsoap)调用 WCF服务

1、下载

gsoap_2.8.124.zip

gSOAP Toolkit download | SourceForge.net

2、环境变量设置

    指定系统环境,比如 win3

3、头文件生成

wsdl2h.exe -s -t wsmap.dat -o service.h url?wsdl

  • wsmap.dat : xsd__string = | std::wstring | wchar_t*

  • a.h : 指定自定义头文件;

  • url : 指定网络地址 + ?wsdl

    http://ws.webxml.com.cn/WebServices/WeatherWS.asmx?wsdl

  • a.wsdl : 浏览器打开网络地址(地址 + ?wsdl),另存 xml 文件为 wsdl 文件
// 示例
wsdl2h.exe -s -o serviceIn.h http://ws.webxml.com.cn/WebServices/WeatherWS.asmx?wsdl

4、编译文件生成

 -C 仅生成客户端代码  

 -S 仅生成服务器端代码

 -L 不要产生soapClientLib.c和soapServerLib.c文件  

 -c 产生纯C代码,否则是C++代码(与头文件有关)  

 -I 指定import路径 

 -t 文件名,指定type map文件,默认为 typemap.dat

 -x 不要产生XML示例文件

 -i 生成C++包装,客户端为xxxxProxy.h(.cpp),服务器端为xxxxService.h(.cpp)

soapcpp2.exe -i -C -x -L "F:\OPT\webservice\JsonTestDocking\service.h" -I "E:\Dev\gsoap-2.8\gsoap\import" -1

协议不同:

  • -1(2.8 以下默认)指定 soap 1.1 版本(text+xml)

  • -2(2.8 以上默认)指定 soap 1.2 版本(soap+xml)

5、文件依赖

 注意:不使用预编译头

6、demo

测试服务

https://my.oschina.net/CraneHe/blog/183471

引入空间以及对应代理类头文件

#include "xxxService.nsmap"
#include "xxxServiceProxy.h"

​示例

belien/gsoap-weatherDocking - 码云 - 开源中国 (gitee.com)

2782694792/gsoap_WeatherDocking (github.com)

查看城市

WeatherWebService Web 服务 (webxml.com.cn)

免费接口

WEB服务(Web Servicrs)| 免费WEB服务 | 商业WEB服务 | XML Web Servicrs - WEBXML

接口测试

面试题-web service接口如何测试? - 腾讯云开发者社区-腾讯云 (tencent.com)

其他方法

c++调用webservice接口的几种方法以及实例_c调用webservice接口_Mr_oOo_的博客-CSDN博客

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值