Я использую Savon в своем приложении RoR.
Это мой звонок в сервис:
client = Savon::Client.new(MY_SOAP_CLIENT)
response = client.request :wsdl, :get_history do
soap.body = "<startDate>2011-09-23</startDate><endDate>2011-09-24</endDate><userId>3</userId>"
end
И я получаю следующий ответ в XML:
<soapenv:Envelope xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\">
<soapenv:Body xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\">
<resMessage xmlns=\"http://xxx-xxx.xxx.edu/xxx/\">
<result>date=2011-09-23?amount=13.00?time=08:50:38?user=a00123?type=transfer</result>
<result>date=2011-09-23?amount=3.00?time=08:51:27?user=a00123456?type=transfer</result>
<result>date=2011-09-23?amount=20.00?time=09:49:00?user=a00123456?type=transfer</result>
</resMessage></soapenv:Body></soapenv:Envelope>
Но главная проблема в том, что когда я звоню response.to_hash
, я получаю только часть объектов Date:
=> [пт, 23 сентября 2011 года, пт, 23 сентября 2011 года, пт, 23 сентября 2011 года]
Это отлично подходит для даты, но другая часть результатов отсутствует: сумма, время, пользователь и тип. Также, если я звоню response.body
, я продолжаю получать те же результаты:
=> {: res_message => {: result => [пт, 23 сен 2011, пт, 23 сен 2011, пт,
23 сентября 2011 года, пт, 23 сентября 2011 года, пт, 23 сентября 2011 года],
: @Xmlns => "http://xxx -xxx.xxx.edu / ххх /"},
: "@ XMLNS: soapenv" => "http://schemas.xmlsoap.org/soap/envelope/"}
Я не нашел решения для этого здесь, ни проблемы Savon
Заранее спасибо