【问题标题】:Passing an attribute to a SOAP request using Savon使用 Savon 将属性传递给 SOAP 请求
【发布时间】:2010-11-04 22:00:02
【问题描述】:

我正在使用一个简单的 SOAP Web 服务来获取一小段 HTML 以包含在 Rails 站点中。不幸的是,我对 SOAP 并不是特别熟悉。

我需要在下面的端点上调用 TopHtml() SOAP 方法,但我还需要传递一个 ID 号,例如 TopHtml(29)。

我正在使用 Savon gem,我的代码看起来有点像:

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

有效,但在未提供 ID 号时返回默认响应。

ID 号好像没有通过。有谁知道如何将参数传递给 Savon SOAP 请求?

非常感谢, 特里斯坦

【问题讨论】:

    标签: ruby-on-rails soap savon


    【解决方案1】:

    试试

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

    【讨论】:

    • 根据 Savon 文档,这应该可以。但是,在查看请求对象时,soap.body 上设置的属性没有出现。
    【解决方案2】:

    出于时间考虑,我最终自己准备了请求 XML,这不太理想(并且几乎违背了使用 Savon 的目的),但这是我可以正确准备请求的唯一方法。 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
    

    糟糕,但我不会再花时间在上面了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-12-02
      • 1970-01-01
      • 1970-01-01
      • 2016-08-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多