【问题标题】:Savon Ruby Soap Client - can't create a soap document correctlySavon Ruby Soap 客户端 - 无法正确创建肥皂文档
【发布时间】:2011-10-20 01:16:57
【问题描述】:

我承认我对 SOAP 和 Savon 都是新手,但我已经将它与另一个服务一起使用,但这个让我很困惑。

WSDL 在这里: http://stg-wholesale.carsdirect.com/ws/services/Ping?WSDL

完成后的文档应如下所示:

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                  xmlns:xsd="http://www.w3.org/2001/XMLSchema"
                  xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
    <soap:Body>
        <dealerPing xmlns="http://wholesale.carsdirect.com">
            <request>
                <partner>
                    <pricePlan>integer</pricePlan>
                    <id>integer</id>
                </partner>
                <vehicle>
                    <year>integer</year>
                    <make>string</make>
                    <model>string</model>
                    <trim>string</trim>
                </vehicle>
                <zipcode>integer</zipcode>
            </request>
        </dealerPing>
    </soap:Body>
</soap:Envelope>

如果有人能接近生成这样的文档或给我一些指示,我将不胜感激。

我尝试做类似的事情:

client = Savon::Client.new{|wsdl| wsdl.document = @cp.wsdl}
@response = client.dealer_ping do |soap|
  ...
end

但是,我收到了这个错误:未定义的方法 `dealer_ping' for #

我几乎被困在这一点上。我对这个等式的两个部分都缺乏了解。

谢谢。

【问题讨论】:

  • 不得不去开会,但我一定会在今天晚些时候回答这个问题。快速回答是:使用client.request 并查看savonrb.com的文档
  • 我做到了。我只是在理解如何让肥皂请求看起来完全像我需要的东西时遇到了一些问题。感谢您的帮助。
  • 嘿,埃里克。我尝试使用soapUI 创建一个有效的请求,但我收到“错误NCWM.PI.426”系统错误。不知道我是否必须猜测正确的合作伙伴 ID 或价格计划,但请求不成功。你能生成一个有效的请求,以便我可以用一个工作示例来回答吗?
  • 我不能透露,抱歉。但是,如果您可以让 savon 正确生成 xml,那将是朝着正确方向迈出的一大步,谢谢。

标签: ruby soap wsdl savon


【解决方案1】:

我无权访问该服务,所以我无法尝试它是否有效......但这应该可以工作:

client = Savon::Client.new do
  wsdl.endpoint = "http://stg-wholesale.carsdirect.com/ws/services/Ping"
  wsdl.namespace = "http://wholesale.carsdirect.com"
end

client.request(:dealer_ping) do
  soap.body = {
    :request => {
      :partner => {
        :price_plan => 123,
        :id => 1222
      },
      :vehicle => {
        :year => 2010,
        :make => "Aston Martin",
        :model => "DBS",
        :trim => ""
      },
      :zipcode => 90245
    }
  }
end

【讨论】:

  • 会试一试,非常感谢。我现在只是蛮力的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-01-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-03-28
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多