目录
服务协议:
-
wcf basicHttpBinding content-type text/xml;charset=utf-8
-
wsHttpBinding 'application/soap+xml; charset=utf-8'
-
webHttpBinding 'application/x-www-form-urlencoded'
WSDL 文件信息:
常见问题:
版本 1.1 实例:
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博客