我使用的是微软的开发包SoapToolkit20.exe访问的
C#建的webservice
暴露接口为:string GetExpoBigType()
程序为:
#include <stdio.h>
#include <string>
#include <iostream>
using namespace std;#import "msxml3.dll"
using namespace MSXML2;#import "C:\Program Files\Common Files\MSSoap\Binaries\MSSOAP1.dll" \
exclude("IStream", "ISequentialStream", "_LARGE_INTEGER", \
"_ULARGE_INTEGER", "tagSTATSTG", "_FILETIME")using namespace MSSOAPLib;string GetExpoBigType()
{
ISoapSerializerPtr Serializer;
ISoapReaderPtr Reader;
ISoapConnectorPtr Connector;
//实例化一个连接器
Connector.CreateInstance(__uuidof(HttpConnector));
//连接器指针的属性,指向一个Web Service端点
Connector->Property["EndPointURL"]="http://192.168.26.88:8088/webservice/getexpo.asmx";
Connector->Connect();
//获得一个方法
Connector->Property["SoapAction"]="getName";
//开始获取信息
Connector->BeginMessage();
Serializer.CreateInstance(__uuidof(SoapSerializer));
Serializer->Init(_variant_t((IUnknown*)Connector->InputStream));
Serializer->startEnvelope("","","");
Serializer->startBody("");
Serializer->startElement("getName","http://116.6.52.26:8088/webservice/getexpo.asmx?method=getName","","m");
Serializer->endElement();
Serializer->endBody();
Serializer->endEnvelope();
Connector->EndMessage();
//实例化一个信息读取器
Reader.CreateInstance(__uuidof(SoapReader));
//读取数据流
Reader->Load(_variant_t((IUnknown*)Connector->OutputStream),"");
string message;
//message.Format("Return Message is : %s",(const char*)Reader->RPCResult->text);
message = Reader->RPCResult->text;
return message;
}void main()
{
string msg = GetExpoBigType();
cout << msg << endl;
}
C#建的webservice
暴露接口为:string GetExpoBigType()
程序为:
#include <stdio.h>
#include <string>
#include <iostream>
using namespace std;#import "msxml3.dll"
using namespace MSXML2;#import "C:\Program Files\Common Files\MSSoap\Binaries\MSSOAP1.dll" \
exclude("IStream", "ISequentialStream", "_LARGE_INTEGER", \
"_ULARGE_INTEGER", "tagSTATSTG", "_FILETIME")using namespace MSSOAPLib;string GetExpoBigType()
{
ISoapSerializerPtr Serializer;
ISoapReaderPtr Reader;
ISoapConnectorPtr Connector;
//实例化一个连接器
Connector.CreateInstance(__uuidof(HttpConnector));
//连接器指针的属性,指向一个Web Service端点
Connector->Property["EndPointURL"]="http://192.168.26.88:8088/webservice/getexpo.asmx";
Connector->Connect();
//获得一个方法
Connector->Property["SoapAction"]="getName";
//开始获取信息
Connector->BeginMessage();
Serializer.CreateInstance(__uuidof(SoapSerializer));
Serializer->Init(_variant_t((IUnknown*)Connector->InputStream));
Serializer->startEnvelope("","","");
Serializer->startBody("");
Serializer->startElement("getName","http://116.6.52.26:8088/webservice/getexpo.asmx?method=getName","","m");
Serializer->endElement();
Serializer->endBody();
Serializer->endEnvelope();
Connector->EndMessage();
//实例化一个信息读取器
Reader.CreateInstance(__uuidof(SoapReader));
//读取数据流
Reader->Load(_variant_t((IUnknown*)Connector->OutputStream),"");
string message;
//message.Format("Return Message is : %s",(const char*)Reader->RPCResult->text);
message = Reader->RPCResult->text;
return message;
}void main()
{
string msg = GetExpoBigType();
cout << msg << endl;
}
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货