Савон: Как я могу указать пользовательский XML в теле хэша для запроса SOAP? - PullRequest
1 голос
/ 04 июля 2011

В запросе SOAP мне нужно указать повторяющиеся ключи с разными значениями, такими как:

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

С этим хешем запрос будет сформирован с помощью:

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

последний: пара строк.Так что если я поставлю:

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.

1 Ответ

1 голос
/ 04 июля 2011

Ваш первый код не может работать, и это не вина Савона, повторяющиеся ключи в хэше просто переопределяются. Вы пробовали с массивом?

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

Проверьте также: https://github.com/rubiii/savon/issues/45

...