简单实现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"字符串,他的简单代码如下:

Code

 

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

 

posted @ 2009-03-13 00:30  江湖飘  阅读(1221)  评论(3编辑  收藏  举报