2009-08-14 13 views
0

Ich benutze Ruby, um einen Bericht durch den Aufruf einer soap-basierten Web-Service-Methode zu erhalten. Durch Aufruf einer solchen Methode (soap_driver.method_foo (params)) erhalte ich ein Ruby-Objekt dieses Typs SOAP :: Mapping :: Object.Ruby SOAP .. eine Seife Antwort behandeln

Ich inspiziere das Objekt und bekomme eine Menge QNames, die ich benutze, um die Informationen aus dem Objekt zu bekommen.

In Anbetracht der soapResponse ist das Objekt von der Web-Methode zurückgegeben Ich habe versucht Dinge wie soapResponse ["// some_elem"] .. Zeug wie das. Aber ich bekomme Nils (außer der Wurzel).

Was soll ich tun, um das Objekt zu analysieren?

dank

Antwort

0

Es scheint die Möglichkeit, die Informationen innerhalb eines SOAP-Objekt zuzugreifen ist public_methods auf das Response-Objekt aufrufen und für die Methode suchen, die ein Element zugreift. Die Rückgabe dieser Methode ist ein anderes Objekt. Noch einmal können Sie die öffentlichen Methoden sehen usw. Wiederholen Sie diese Schritte, bis Sie den gewünschten Wert erreicht haben.

Beispiel

responseObject.dailyStatisticsRecords.dailyStatisticRecords.dailyStatisticsRecord.totalCommission

1

keine direkte Antwort, aber Sie einen Blick auf handsoap nehmen könnten, da es saubere SOAP-Client Ruby ist.

0

Der SOAP-Aufruf (method1) gibt ein SOAP :: Mapping :: Object zurück, auf das Sie mithilfe von Zeichenfolgen als Schlüssel zugreifen können. Das Root-Element ist nach der von Ihnen aufgerufenen Methode benannt.

result = soap_driver.method1(:param1 => 'foo', :param2 => 'bar') 
puts result['method1Result']['field1'] 
puts result['method1Result']['field2']