//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include <Objbase.h>
#include <tchar.h>
#include <vector>
using namespace std;
#include "MSSOAPLib30_TLB.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
//---------------------------------------------------------------------------
Variant CallWebService(String sURL, String sMethod, int iParamCount, ...)
{
WideString wURL = sURL;
WideString wMethod = sMethod;
vector<WideString> vwValue;
va_list arg_ptr;
va_start(arg_ptr, iParamCount);
for (int i = 0; i < iParamCount; i++)
{
WideString wsParam = va_arg(arg_ptr, String);
vwValue.push_back(wsParam);
}
va_end(arg_ptr);
Variant vClient;
Variant vResult;
try
{
CoInitialize(NULL);
vClient = CreateOleObject("MSSOAP.SoapClient");
vClient.OleFunction("MSSoapInit", wURL);
switch (iParamCount)
{
case 0:
vResult = vClient.OleFunction(wMethod);
break;
case 1:
vResult = vClient.OleFunction(wMethod, vwValue[0]);
break;
case 2:
vResult = vClient.OleFunction(wMethod, vwValue[0], vwValue[1]);
break;
case 3:
vResult = vClient.OleFunction(wMethod, vwValue[0], vwValue[1], vwValue[2]);
break;
case 4:
vResult = vClient.OleFunction(wMethod, vwValue[0], vwValue[1], vwValue[2],
vwValue[3]);
break;
case 5:
vResult = vClient.OleFunction(wMethod, vwValue[0], vwValue[1], vwValue[2],
vwValue[3], vwValue[4]);
break;
case 6:
vResult = vClient.OleFunction(wMethod, vwValue[0], vwValue[1], vwValue[2],
vwValue[3], vwValue[4], vwValue[5]);
break;
case 7:
v
WebService客户端的几种调用方式
最新推荐文章于 2021-07-16 13:16:29 发布
本文详细介绍了使用SoapClient进行WebService客户端调用的方法,包括如何建立连接、发送请求及接收响应。同时,探讨了WebService客户端调用的不同策略和最佳实践,帮助开发者更好地理解和应用WebService技术。
摘要由CSDN通过智能技术生成