用msxml+soap #import "msxml4.dll" using namespace MSXML2; #import "C:/Program Files/Common Files/MSSoap/Binaries/mssoap30.dll" / exclude("IStream", "IErrorInfo", "ISequentialStream", "_LARGE_INTEGER", / "_ULARGE_INTEGER", "tagSTATSTG", "_FILETIME") using namespace MSSOAPLib30; string GetCompanyNameFromWeb(void) { try { ISoapSerializerPtr Serializer; ISoapReaderPtr Reader; ISoapConnectorPtr Connector; // Connect to the service. Connector.CreateInstance(__uuidof(HttpConnector30)); //Connector->Property["EndPointURL"] = "http://www.mainone.com/UpLoadImage.asmx"; Connector->Property["EndPointURL"] = "http://localhost/WebOfficeValidateService/Validate.asmx"; Connector->Connect(); // Begin the message. Connector->Property["SoapAction"] = "http://tempuri.org/GetCompanyName"; Connector->BeginMessage(); // Create the SoapSerializer object. Serializer.CreateInstance(__uuidof(SoapSerializer30)); // Connect the serializer object to the input stream of the connector object. Serializer->Init(_variant_t((IUnknown*)Connector->InputStream)); // Build the SOAP Message. Serializer->StartEnvelope("","",""); Serializer->StartBody(""); Serializer->StartElement("GetCompanyName","http://tempuri.org/","",""); Serializer->StartElement("SerialNum","http://tempuri.org/","",""); Serializer->WriteString(m_strSerial.c_str()); Serializer->EndElement(); Serializer->EndElement(); Serializer->EndBody(); Serializer->EndEnvelope(); // Send the message to the XML Web service. Connector->EndMessage(); // Read the response. Reader.CreateInstance(__uuidof(SoapReader30)); // Connect the reader to the output stream of the connector object. VARIANT_BOOL bl = Reader->Load(_variant_t((IUnknown*)Connector->OutputStream), ""); // Display the result. _bstr_t bstrResult = Reader->RpcResult->text; return (char*)bstrResult; } catch(_com_error &e) { return NULL; } } 原文出处:http://ziyi0811.360doc.com/content/070510/20/17598_492742.html