C++ MSSOAP передача данных в SOAP request
От: Ayreon  
Дата: 15.11.07 15:20
Оценка:
Мне методами ISoapSerializer надо сгенерировать такой запрос

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<GetUpdateFileLis xmlns="http://10.35.5.115/RA/WebServices/">
<UpdateProductVersion>int</UpdateProductVersion>
</GetUpdateFileLis>
</soap:Body>
</soap:Envelope>

Мой код:

ISoapSerializerPtr Serializer;
ISoapReaderPtr Reader;
ISoapConnectorPtr Connector;

HRESULT hr = S_OK;

hr = Connector.CreateInstance(__uuidof(HttpConnector30));

Connector->Property["EndPointURL"] = (LPCSTR)lpWebServiceUrl;

hr = Connector->Connect();

Connector->Property["SoapAction"] = _T("http://10.35.5.115/RA/WebServices/GetUpdateFileLis");


hr = Connector->BeginMessage();

hr = Serializer.CreateInstance(__uuidof(SoapSerializer30));

hr = Serializer->Init(_variant_t((IUnknown*)Connector->InputStream));

hr = Serializer->StartEnvelope("soap",_T("NONE"),_T(""));
hr = Serializer->StartBody("");
hr = Serializer->StartElement("GetUpdateFileLis",
_T("http://10.35.5.115/RA/WebServices/"),
_T("NONE"),_T(""));

hr = Serializer->StartElement("UpdateProductVersion",
_T(""),
_T("NONE"),_T(""));
hr = Serializer->SoapAttribute("xsi:type","","xsd:int","");
hr = Serializer->WriteString("100");
hr = Serializer->EndElement();
hr = Serializer->EndElement();
hr = Serializer->EndBody();
hr = Serializer->EndEnvelope();

hr = Connector->EndMessage();
даллее — Connector->EndMessage()генерирует ексепшн

если я передаю просто как string то возвращается

incorrect syntax
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.