前面更具gSoap源码包里面的例子,创建了一个简单的WebService服务端程序:MyCalcSvr.exe,现在创建一个简单的WebService客户端程序:MyCalcCli.exe。
用VS创建一个项目:MyCalcCli,创建Calc.h和 CalcCli.cpp文件,内容如下 :
头文件Calc.h,内容如下:
//gsoap Calc service method-documentation: add Sums two values
int Calc__add(double a, double b, double *result);
//gsoap Calc service method-documentation: sub Subtracts two values
int Calc__sub(double a, double b, double *result);
//gsoap Calc service method-documentation: mul Multiplies two values
int Calc__mul(double a, double b, double *result);
//gsoap Calc service method-documentation: div Divides two values
int Calc__div(double a, double b, double *result);
//gsoap Calc service method-documentation: pow Raises a to b
int Calc__pow(double a, double b, double *result);
程序主文件CalcCli.cpp,内容如下:
#include "CalcH.h"
#include "Calc.nsmap"
const char server[] = "http://127.0.0.1:8888";
int main(int argc, char **argv)
{
struct soap soap;
double a, b, result;
if (argc < 4)
{
fprintf(stderr, "Usage: [add|sub|mul|div|pow] num num/n");
exit(0);
}
soap_init1(&soap, SOAP_XML_INDENT);
a = strtod(argv[2], NULL);
b = strtod(argv[3], NULL);
switch (*argv[1])
{
case 'a':
soap_call_Calc__add(&soap, server, "", a, b, &result);
break;
case 's':
soap_call_Calc__sub(&soap, server, "", a, b, &result);
break;
case 'm':
soap_call_Calc__mul(&soap, server, "", a, b, &result);
break;
case 'd':
soap_call_Calc__div(&soap, server, "", a, b, &result);
break;
case 'p':
soap_call_Calc__pow(&soap, server, "", a, b, &result);
break;
default:
fprintf(stderr, "Unknown command/n");
exit(0);
}
if (soap.error)
{
soap_print_fault(&soap, stderr);
exit(1);
}
else
printf("result = %g/n", result);
soap_destroy(&soap);
soap_end(&soap);
soap_done(&soap);
system("pause");
return 0;
}
然后把stdsoap2.h, stdsoap2.cpp, soapcpp2.exe这三个文件拷贝到MyCalcCli项目目录下面,跟Calc.h文件同一个目录的地方,同时在该目录下创建文件 CreateCli.cmd,文件内容如下:
soapcpp2 -CLwx -pCalc Calc.h
双击运行CreateCli.cmd,这是将会产生 CalcH.h,CalcProxy.h,CalcStub.h,CalcClient.cpp,CalcC.cpp,Calc.nsmap这
6 个 文件。把 stdsoap2.cpp,CalcClient.cpp,CalcC.cpp这三个文件添加到MyCalcCli项目中去,编译。
好了,一个简单的WebService客户端程序出炉了。
先运行上一篇文中的MyCalcSvr.exe服务程序,然后运行 MyCalcCli.exe a 12 13,好了:result = 25。
gSoap入门之三__C++开发的简单WebService客户端程序
最新推荐文章于 2024-03-01 14:45:54 发布