[gSOAP]MFC调用WEBService

本文详细介绍了如何在MFC环境下,利用gSOAP工具与库,调用WEBService API。从下载gSOAP到配置环境,再到生成客户端代码,并解决中文乱码问题,每个步骤都有清晰的说明。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

gSOAP编译工具提供了一个SOAP/XML 关于C/C++ 语言的实现,从而让C/C++语言开发web服务或客户端程序的工作变得轻松了很多。

gSOAP官网:点击打开链接


我现在只想说:gSOAP就是个傻瓜相机——非常好用!


本文介绍如何利用gSOAP,达到在MFC下调用WEBService的API的目的。仅客户端。


工具&环境:

0、WIN XP
1、VC6
2、gSOAP 2.8.17(官方下载地址
3、一个目标(一个WEBService,一般以WSDL结尾,如果是asmx结尾的,在URL后面加上“?wsdl”)


步骤:

1、下载好gSOAP后,解压。在解压后的文件夹里打开gsoap-2.8\gsoap\bin\win32,可以看见2个exe文件。

(当然在bin文件夹内你还能看到macosx、linux386,为什么我要进入win32呢?因为擦屁!)

2、打开cmd.exe(什么?cmd怎么打开?乖,洗洗睡吧)。将路径设置到gsoap-2.8\gsoap\bin\win32。

3、
(1)输入命令:wsdl2h -s -o MLGB.h XXXXXXXXXXXXXXXXXXXXXX。说明,wsdl2h就是那个exe之一,-s、-o都是参数。-s代表不使用STL,取而代之需要在工程中包含stdsoap2.h和stdsoap2.cp

### MFC调用 Web Service 的示例教程 #### 1. 创建 WebServiceMFC 对话框项目 为了在 MFC 应用程序中调用 WebService,首先需要创建一个 WebService 项目并将其集成到现有的解决方案中。具体操作如下: - **生成 WebService 项目** 使用 Visual Studio 创建一个新的 ASP.NET WebService 项目 `WebService1`[^1]。 - **添加 MFC 对话框项目** 在同一解决方案中添加一个 MFC 对话框应用程序项目 `TestWebService` 并启用公共语言运行时支持 (/CLR)[^1]。 --- #### 2. 配置 MFC 项目的公共语言支持 为了让 MFC 项目能够引用 .NET 组件中的 WebService 功能,需配置其公共语言支持(Common Language Runtime Support)。这可以通过以下步骤完成: - 右键单击 `TestWebService` 项目 -> 属性 -> C/C++ -> 常规 -> 启用 CLR 支持选项设置为 `/clr`。 - 添加对已生成的 WebService 引用,默认命名空间通常为 `localhost`。 --- #### 3. 编写代码实现 WebService 调用 以下是完整的代码示例,展示如何在 MFC 对话框应用中调用 WebService 方法。 ```cpp // TestWebServiceDlg.cpp 文件内容 #include "stdafx.h" #include "TestWebService.h" #include "TestWebServiceDlg.h" #ifdef _DEBUG #define new DEBUG_NEW #endif // 导入 WebService 头文件 #include "webservice.h" BEGIN_MESSAGE_MAP(CAboutDlg, CDialogEx) END_MESSAGE_MAP() BOOLCTestWebServiceDlg::OnInitDialog() { CDialogEx::OnInitDialog(); // 初始化 WebService 客户端对象 localhost::Service service; // 替换为实际的服务类名 try { CString result; BSTR bstrResult; // 调用 WebService 提供的方法 bstrResult = service.HelloWorld(); // 示例方法 HelloWorld() result = CW2A(bstrResult); SetDlgItemText(IDC_EDIT_RESULT, result); // 将结果显示在控件中 } catch (_com_error &e) { AfxMessageBox(e.Description()); } return TRUE; } ``` 上述代码展示了如何初始化 WebService 客户端对象并通过它调用远程服务方法。 --- #### 4. 使用 gSOAP 工具替代传统方式 除了直接依赖于 .NET Framework 的功能外,也可以借助第三方库如 gSOAP 来简化跨平台环境下的 WebService 访问过程。gSOAP 是一种强大的 SOAP 协议编译器工具集,适用于多种编程语言和操作系统环境[^2][^4]。 ##### 步骤概述: - 下载安装 gSOAP 开发包; - 利用 wsdl2h.exe 和 soapcpp2.exe 工具将目标 WSDL 描述转换成对应的头文件与源代码; - 将生成的结果导入至现有工程项目中,并按照标准流程构建连接逻辑。 --- #### 5. 测试公开可用的 WebService 接口 对于初学者而言,可以直接尝试一些免费开放的在线 WebService 地址来进行练习测试。例如,“国内手机号码归属地查询 WEB 服务”的 URL 如下所示[^3]: ``` http://www.webxml.com.cn/WebServices/MobileCodeWS.asmx?wsdl ``` 通过此链接获取详细的接口定义文档后即可着手编写相应的客户端请求脚本。 --- ### 总结 本文介绍了两种主流技术路径用于实现在基于 Microsoft Foundation Classes(MFC)框架内的桌面级软件产品当中接入外部网络化信息服务的能力——即利用内置 .NET 运行期特性快速搭建原型方案;以及引入开源社区贡献成果(gSoap),从而获得更灵活可控的操作体验的同时兼顾性能表现优化需求。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值