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 に答える