在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
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; }
然后我们就运行代码就会出现一下字符了:
|
请发表评论