简单实现gSOAP和ASP.NET的通信

gSOAP是一个跨平台的实现SOAP通信的开源代码库。这是我对这个开源项目到现在为止的不完全了解。所以能介绍的就是这些了,可能还存在错误。

因为和同事在弄一个项目,要在客户端用C++和ASP.NET发布的WebService通信。所以这几天开始研究这个库。昨天实现了其例子程序的几个通信,因为自己对ASP.NET也是一知半解,所以只能把和ASP.NET发布的WebService通信留到今天。晚上回家小查了一下ASP.NET的简单应用,虽然遇到一点问题,还是建立起了一个ASP.NET的服务器。  没有写一行代码,用了VS想到生成的代码,因为只是作为示例,所以也没打算去改代码。

 既然要实现ASP.NET WebService和gSOAP的通信,ASP.NET构建的网站是必不可少的了。在ASP.NET方面我也是菜鸟,所以我使用的想到生成的代码。关于如何创建我想就不介绍了,如果也有人像我这么菜的,请参考我的上一篇文章《访问 IIS 元数据库失败问题以及第一次运行WebService》关于我遇到的一些问题。

创建好以后需要将网站发布出去。比如我们可以在http://localhost/SOAP/Service.asmx这个网址中查看该WebService。我们就可以在浏览器中输入http://localhost/SOAP/Service.asmx?wsdl以获取wsdl文件。以wsdl为后缀名保存该wsdl文件。

 到gSOAP官网http://www.cs.fsu.edu/~engelen/soap.html中下载最新的gSOAP版本。可以在bin文件夹中获得wsdl2h.exe和soapcpp.exe两个工具。

wsdl2h.exe是可以根据一个wsdl文件生成一个.h文件。假如我们保存的哪个wsdl文件名为:WebService.wsdl。那么我们在命令行中输入:wsdl2h.exe Service.wsdl。这样就会生成相应的.h文件。然后由soapcpp.exe根据这个.h文件来生成相应的代码文件。soapcpp.exe -i WebService.h,就会生成相应的文件,其中ServiceSoap.nsmap, SoapC.cpp, soapH.h, soapServiceSoapProxy.h, soapServiceSoapProxy.cpp, soapStub.h这些文件是构建gSOAP客户端所必须的,至于其他文件用来做什么,我现在也不知道,若有高手知道,望指点一二。除了这些文件,我们还需要找到stdsoap2.h, stdsoap2.cpp两个文件。在所有的文件都找到以后,我们需要吧这些文件加到工程中去。

最后我们需要编写客户端程序,他的作用就是用来在服务器端获取"Hello word"字符串,他的简单代码如下:

ContractedBlock.gif ExpandedBlockStart.gif Code
#include "stdafx.h"

#include 
"soapServiceSoapProxy.h"
#include 
"ServiceSoap.nsmap"

const char server[] = "http://localhost/SOAP/Service.asmx";

int main(int argc, char **argv)

    printf(
"Getting Hello World words!\n");

    ServiceSoapProxy soapService;
    soapService.soap_endpoint 
= server;

    _ns1__HelloWorld input;
    _ns1__HelloWorldResponse output;
    
    soapService.HelloWorld(
&input, &output);

    printf(
"%s", output.HelloWorldResult->c_str());

    
return 0;
}

 

 然后我们就运行代码就会出现一下字符了:

 

转载于:https://www.cnblogs.com/Diwore/archive/2009/03/13/1410120.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值