我學習Ruby和我寫了下面的代碼,找出如何消費SOAP服務:如何解析來自ruby客戶端的SOAP響應?
require 'soap/wsdlDriver'
wsdl="http://www.abundanttech.com/webservices/deadoralive/deadoralive.wsdl"
service=SOAP::WSDLDriverFactory.new(wsdl).create_rpc_driver
weather=service.getTodaysBirthdays('1/26/2010')
的答覆中說我得到的回覆是:
#<SOAP::Mapping::Object:0x80ac3714
{http://www.abundanttech.com/webservices/deadoralive} getTodaysBirthdaysResult=#<SOAP::Mapping::Object:0x80ac34a8
{http://www.w3.org/2001/XMLSchema}schema=#<SOAP::Mapping::Object:0x80ac3214
{http://www.w3.org/2001/XMLSchema}element=#<SOAP::Mapping::Object:0x80ac2f6c
{http://www.w3.org/2001/XMLSchema}complexType=#<SOAP::Mapping::Object:0x80ac2cc4
{http://www.w3.org/2001/XMLSchema}choice=#<SOAP::Mapping::Object:0x80ac2a1c
{http://www.w3.org/2001/XMLSchema}element=#<SOAP::Mapping::Object:0x80ac2774
{http://www.w3.org/2001/XMLSchema}complexType=#<SOAP::Mapping::Object:0x80ac24cc
{http://www.w3.org/2001/XMLSchema}sequence=#<SOAP::Mapping::Object:0x80ac2224
{http://www.w3.org/2001/XMLSchema}element=[#<SOAP::Mapping::Object:0x80ac1f7c>,
#<SOAP::Mapping::Object:0x80ac13ec>,
#<SOAP::Mapping::Object:0x80ac0a28>,
#<SOAP::Mapping::Object:0x80ac0078>,
#<SOAP::Mapping::Object:0x80abf6c8>,
#<SOAP::Mapping::Object:0x80abed18>]
>>>>>>> {urn:schemas-microsoft-com:xml-diffgram-v1}diffgram=#<SOAP::Mapping::Object:0x80abe6c4
{}NewDataSet=#<SOAP::Mapping::Object:0x80ac1220
{}Table=[#<SOAP::Mapping::Object:0x80ac75e4
{}FullName="Cully, Zara"
{}BirthDate="01/26/1892"
{}DeathDate="02/28/1979"
{}Age="(87)"
{}KnownFor="The Jeffersons"
{}DeadOrAlive="Dead">,
#<SOAP::Mapping::Object:0x80b778f4
{}FullName="Feiffer, Jules"
{}BirthDate="01/26/1929"
{}DeathDate=#<SOAP::Mapping::Object:0x80c7eaf4>
{}Age="81"
{}KnownFor="Cartoonists"
{}DeadOrAlive="Alive">]>>>>
我有一個很大的難以弄清楚如何解析和顯示返回的信息在一個漂亮的表格中,甚至只是如何遍歷記錄並訪問每個元素(即FullName,Age等)。我經歷了整個「getTodaysBirthdaysResult.methods - Object.new.methods」並一直在努力嘗試並研究如何訪問元素,但是後來我進入陣列並且迷路了。
任何可以提供的幫助將不勝感激。
昨天我簡要介紹了Handsoap,這僅僅是一個肥皂客戶端,還是我可以創建一個Soap服務器像Soap4r StandaloneServer – nas 2010-01-27 10:11:34
在另一張紙上,你可以指點一下Soap4R和HandSoap之間的比較。我會非常感興趣的看待HandSoap和Soap4R的優點和缺點。顯然,任何一方都不能只有優點或缺點。 – nas 2010-01-27 10:14:56
這只是一個客戶。項目頁面上的庫有一些理由,但是小故事:Handsoap事先做了更多的努力,但是如果/當事情失敗時它更容易調試代碼(這是因爲SOAP是協議的惡夢)。它也使得更精簡/更快的代碼。 – troelskn 2010-01-27 10:41:57