2010-11-04 64 views
1

我正在使用簡單的SOAP Web服務來獲取一小段HTML以包含在Rails站點中。不幸的是,我並不特別熟悉SOAP。使用Savon將屬性傳遞給SOAP請求

我需要在下面的端點上調用TopHtml()SOAP方法,但我還需要傳遞一個ID號,如TopHtml(29)。

我使用的是薩翁寶石和我的代碼看起來有點像:

response = Savon::Client.new('http://www.xxxxxx.xxx/webservices/services.asmx?wsdl').top_html(29) 

其作品,但返回時,未提供一個ID號爲默認響應。

看起來身份證號碼沒有被傳遞。有誰知道如何將參數傳遞給Savon SOAP請求?

非常感謝, 特里斯坦

回答

1

在由於時間的關係,我結束了準備請求XML我自己是不太理想的(而且幾乎失去了使用薩翁的目的)但這是我能夠正確準備請求的唯一方法。 XML由服務的開發者提供。

client = Savon::Client.new 'http://www.xxxxxx.xxx/webservices/services.asmx?wsdl' 

response = client.top_html do |soap| 
    soap.xml = ...long xml here... 
end 

Yuck,但我不打算再花時間。

1

嘗試

response = Savon::Client.new('http://www.xxxxxx.xxx/webservices/services.asmx').top_html { |soap| soap.body = { :id => 29} } 
+0

根據薩翁文件,這應該工作。但是,查看請求對象時,在soap.body上設置的屬性沒有出現。 – tristanm 2010-11-11 00:18:23