2010-11-04 147 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