• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

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

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

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



#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;
}

 

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

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
asp.net结合jQuery实现googlesuggest效果发布时间:2022-07-10
下一篇:
Asp.net:DataList分页技术发布时间:2022-07-10
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap