gsoap使用方法

来源:互联网 发布:我知谁掌管明天 王芷蕾 编辑:程序博客网 时间:2024/06/15 21:40

gSOAP操作流程

准备工作:

首先,利用C#创建一个ASP.NET Web Service,添加一个或多个方法;如:

[WebMethod]                     //必须要加上  在每个函数定义的开始

public string HelloWorld()

{

   return "Hello World";

}

其次:运行该程序,以IE浏览器为例,如:http://localhost:56885/addWebService/Service.asmx

在其后加上?wsdl,如:http://localhost:56885/addWebService/Service.asmx?wsdl  即可产生wsdl文件;

 

以上工作准备完成后,就可以开始开发客户端与服务端:

 

CLIENT:

在开发客户端之前,需准备以下文件:

soapC.cpp、soapH.h、soapServiceSoapProxy.cpp、soapServiceSoapProxy.h、soapStub.h、

stdsoap2.cpp、stdsoap2.h

 

生成以上文件命令如下:

以上文件时在E:\workStudyDocu\c++SOAP\gsoapbin目下打开cmd窗口输入以下命令生成的

clianet:

wsdl2h  -o testClient.h -t typemap.dat –e http://localhost:56885/addWebService/Service.asmx?wsdl

soapcpp2  -i -C -x testClient.h

 

将生成的文件拷贝到cilent的工程中:如下图

使用方法示例:

SERVER

在开发服务端时,同样需要准备以下文件:

soapC.cpp、soapH.h、soapServiceSoapService.cpp、soapServiceSoapService.h、soapStub.h、

stdsoap2.cpp、stdsoap2.h

生成以上文件命令如下:

server:  

wsdl2h  -o testServer.h -t typemap.dat -ehttp://localhost:56885/addWebService/Service.asmx?wsdl  

soapcpp2  -i -x -S testServer.h

 

将生成的文件拷贝到server的工程中:如下图

使用方法示例:

#include<iostream>

#include"ServiceSoap.nsmap"

#include"soapServiceSoapService.h"

usingnamespace std;

 

intmain()

{

         ServiceSoapService server;

         server.run(9999);

         return 0;

}

 

NOTE:

应用gSoap编写网络程序,是很方便的,客户端只负责传入要处理的参数,及接收服务器返回值;而所有的处理操作均在服务器中;

例如:webservice中有3个函数,服务器端必须实现这几个函数的定义;

 

之所以建立ASP.NET WebService,是为了获取wsdl。并且函数的接口也是在ASP.NET Web Service 中定义的,通过wsdl2h命令可以获取相应的wsdl。切记,在ASP.NET Web Service中定义的函数,不管你操作如何,我们只要的是函数的接口,通过wsdl2h命令及soapcpp2命令获取。真正的实现是在server端。

 

 

如果要添加函数,需后重新生成wsdl(客户端及服务端),并生成相应的文件,切记,重新添加文件到工程时,应该先保存一份先前已完成函数的代码。

原创粉丝点击