QtSoap - Werte aus der SoapMessage filtern
Verfasst: 28. August 2007 12:24
Hallo,
ich bin gerade dabei mit QtSoap zu arbeiten und stoße dabei auf das Problem, dass ich nicht in der Lage bin auf die in einer Soap Message angelegten Types zuzugreifen.
Im Moment bastel ich mir auf der Serverseite eine Soapmessage zusammen
und schick mir das dann zu meinem Client. Um die Nachricht auszuwerten gehe ich analog zu dem Beispiel von Trolltec vor.
Jetzt sollte es möglich sein mittels res["Argumentname"] auf die einzelnen Werte zuzugreifen... klappt aber irgendwie nicht. Mit res.toString() bekomme ich den ersten Wert '20' zurückgegeben. res.Valid() gibt brav true zurück... Das doofe an dem Bsp von Trolltec ist, dass Google den SOAP Support eingestellt hat, daran kann ich es nämlich leider nicht mehr nachvollziehen.
Hier noch die produzierte SOAP Message
ich bin gerade dabei mit QtSoap zu arbeiten und stoße dabei auf das Problem, dass ich nicht in der Lage bin auf die in einer Soap Message angelegten Types zuzugreifen.
Im Moment bastel ich mir auf der Serverseite eine Soapmessage zusammen
Code: Alles auswählen
QtSoapSimpleType *type1 = new QtSoapSimpleType(QtSoapQName("key"), 20);
QtSoapSimpleType *type2 = new QtSoapSimpleType(QtSoapQName("value"), 40);
QtSoapMessage response;
response.setMethod(QtSoapQName("Response"));
response.addMethodArgument(type1);
response.addMethodArgument(type2);
Code: Alles auswählen
soapMessage.setContent(data);
const QtSoapType &res = soapMessage.returnValue();
Hier noch die produzierte SOAP Message
Code: Alles auswählen
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsd="http://www.w3.org/1999/XMLSchema" >
<SOAP-ENV:Body xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<Response>
<key xsi:type="xsd:int" xmlns:xsi="http://www.w3.org/1999/XMLSchema-instance" >20</key>
<value xsi:type="xsd:int" xmlns:xsi="http://www.w3.org/1999/XMLSchema-instance" >40</value>
</Response>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>