1

在 SOAP 请求中,我需要指定具有不同值的重复键,如下所示:

soap.body = {:query => {
    :fields => {
        :string => 'Email',
        :string => 'FirstName',
        :string => 'LastName'
    }
}

使用此哈希,请求将形成:

<query><fields><string>LastName</string></fields></query>

最后一个 :string 对。所以如果我把:

soap.body = {:query => {
    :fields => "<string>Email</string>FirstName<string></string>LastName<string></string>"
}

这将导致:

<fields>&lt;string&gt;Email&lt;/string&gt;&lt;string&gt;FirstName&lt;/string&gt;&lt;string&gt;LastName&lt;/string&gt;</fields>

有没有办法在哈希中得到这个?:

<query><fields><string>Email</string><string>FirstName</string><string>LastName</string></fields></query>

注意:我使用的是 Ruby 1.8.7。

4

1 回答 1

1

您的第一个代码无法工作,这不是 Savon 的错,哈希中的重复键被简单地覆盖。你试过数组吗?

soap.body = {
  :query => {
    :fields => {:string => ['Email', 'FirstName', 'LastName'],
  }
}

还要检查这个:https ://github.com/rubiii/savon/issues/45

于 2011-07-04T17:12:18.550 回答