描述:
原码如下:
#include <stdio.h>
#include <iostream>
#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;
void CallService()
{
ISoapSerializerPtr Serializer;
ISoapReaderPtr Reader;
ISoapConnectorPtr Connector;
try
{
// Connect to the service
Connector.CreateInstance(__uuidof(HttpConnector));
Connector->Property["EndPointURL"] = "http://longfei/service.asmx";
Connector->Connect();
// Begin message
//Connector->Property["SoapAction"] = "";
Connector->Property["SoapAction"] = "http://longfei/mms/SendTextMessage";
Connector->BeginMessage();
// Create the SoapSerializer
Serializer.CreateInstance(__uuidof(SoapSerializer));
// Connect the serializer to the input stream of the connector
Serializer->Init(_variant_t((IUnknown*)Connector->InputStream));
// Build the SOAP Message
Serializer->startEnvelope("http://schemas.xmlsoap.org/soap/envelope/","","");
Serializer->startBody("");
Serializer->startElement("SendTextMessage","http://gw.lele.com/mms/service.asmx/SendTextMessage","","");
Serializer->startElement("SPNumber","","","");
Serializer->writeString("11");
Serializer->endElement();
Serializer->startElement("password","","","");
Serializer->writeString("11");
Serializer->endElement();
Serializer->startElement("from","","","");
Serializer->writeString("11");
Serializer->endElement();
Serializer->startElement("to","","","");
Serializer->writeString("11");
Serializer->endElement();
Serializer->startElement("servicesType","","","");
Serializer->writeString("11");
Serializer->endElement();
Serializer->startElement("subject","","","");
Serializer->writeString("11");
Serializer->endElement();
Serializer->startElement("text","","","");
Serializer->writeString("11");
Serializer->endElement();
Serializer->endElement();
Serializer->endBody();
Serializer->endEnvelope();
// Send the message to the web service
Connector->EndMessage();
// Let us read the response
Reader.CreateInstance(__uuidof(SoapReader));
// Connect the reader to the output stream of the connector
Reader->Load(_variant_t((IUnknown*)Connector->OutputStream), "");
// Display the result
printf("Answer: %s\n", (const char *)Reader->RPCResult->text);
}
catch(exception *ex)
{
std::cout << "Something wrong happened !" << ex->what << std::endl<< std::endl;
}
}
void main()
{
CoInitialize(NULL);
CallService();
CoUninitialize();
}
怎么我用vc++调用SOAP的时候怎么调用webservices的返回值为soap:server呀,是怎么回事!
谢谢!