文章记录我学习C++调用webservice接口
准备
测试接口
postman测试webservice接口
-
首先请求类型为post 填写上ws地址 ,url地址后不追加?wsdl
-
设置请求头 header Content-type text/xml

-
填写请求体内容 raw

详细说明:
(1) getWeather是方法名。
(2)theCityCode、theUserID是方法参数。
响应报文也为xml格式
工具准备
soap工具下载
C++调用webservice接口需要第三方工具,
gsoap下载地址:http://sourceforge.net/projects/gsoap2
(我所使用版本为gsoap-2.8)
解压进入到文件夹 gsoap-2.8\gsoap\bin\win32 找到如下四个文件
wsdl文件生成
- http://webservice.webxml.com.cn/WebServices/MobileCodeWS.asmx?wsdl 以该wenservice地址为例,复制该地址并通过浏览器生成.xml文件,
- 然后修改文件名为CardService.wsdl文件(文件名随意后缀为 .wsdl 即可)。
c++所需文件生成
-
环境准备
.wsdl文件,例如 CardService.wsdl
stdsoap2.cpp
stdsoap2.h
文件拷贝到win32目录 -
生产头文件
控制台目录切换到win32 //wsdl2h.exe目录
wsdl2h.exe -o CardService.h CardService.wsdl生成 CardCenterPubInterface.h
-
通过头文件生成源码接口
soapcpp2.exe CardService.h -
加入工程
将下列文件加入到VS工程中,或者生成动态库
CardService.hsoapH.h
soapStub.h
stdsoap2.h
soapC.cpp
soapClient.cpp
stdsoap2.cppCardWebServiceServiceSoapBinding.nsmap
一共为八个文件
工程属性 C/C+±>预处理器–>预处理器定义加入 _CRT_SECURE_NO_WARNINGS;
C/C+±>预编译头–>预编译头选择“不适用预编译头”
代码部分
头文件
下面为所需要包含的 头文件。
#include "gosal\callBusinessHttpBinding.nsmap"
#include "gosal\soapStub.h"
需要包含 .nsmap 文件以及 soapStub.h 文件
代码实现
下面为 代码实现部分。
int __stdcall GetKey(CString path, char* Key)
{
USES_CONVERSION;
std::string s(W2A

本文档详细介绍了如何使用C++通过gsoap库调用WebService接口的步骤,包括测试接口、生成所需文件、代码实现及错误处理。在代码实现部分展示了如何初始化SOAP客户端、设置请求参数和处理返回结果,同时提到了可能出现的编译问题及其解决办法。在错误处理中,提到了预编译头的设置和库的添加。

3219

被折叠的 条评论
为什么被折叠?



