Je rencontre des problèmes lors de l'analyse d'une réponse SOAP.Analyse de la réponse SOAP à l'aide de la méthode de conversion SAVON response.to_hash
Voici mon code:
require 'rubygems'
require 'savon'
client = Savon::Client.new "http://1.2.3.4/xyz/abcd/fsds.wsdl"
res = client.query_unpaid_assesments do |soap,wsse|
soap.namespaces["xmlns:SOAP-ENV"] = "http://schemas.xmlsoap.org/soap/envelope/"
soap.namespaces["xmlns:xsi"] = "http://www.w3.org/2001/XMLSchema-instance"
soap.namespaces["xmlns:xsd"] = "http://www.w3.org/2001/XMLSchema"
wsse.username="xyz"
wsse.password="123"
soap.body = {:orderNumber => 111222333 }
end
response = Savon::Response#to_hash
hres = response.to_hash
all_data = hres[:response][:asses_data][:date][:amount][:assesReference][:year][:cusOffCode][:serie][:number][:date][:time]
Voici l'erreur que j'ai:
méthode non définie pour to_hash
:: Réponse Savon: Classe (NoMethodError)
"res" est en me donnant la réponse xml que je voudrais avoir en hash. Je lis les questions connexes précédentes et ils recommandent d'utiliser response.to_hash, ce que j'ai fait et lance l'erreur spécifiée ci-dessus. Comment puis-je me débarrasser de cette erreur et avoir ma réponse en hachage.
merci pour l'aide ur
j'ai oublié de poster le corps de la réponse xml que je voudrais analyser:
<soapenv:Body>
<response>
<ns203:assesData xmlns:ns203="http://asdfsd.sdfsd.zbc.org">
<ns203:date>2010-09-01</ns203:date>
<ns203:amount>34400</ns203:amount>
<ns203:asesReference>
<ns203:year>2010</ns203:year>
<ns203:cusOffCode>098</ns203:customsOfficeCode>
<ns203:serie>F</ns203:serie>
<ns203:number>524332</ns203:number>
<ns203:date>2010-11-11</ns203:date>
<ns203:time>10:11:103</ns203:time>
</ns203:assesReference>
</ns203:assesData>
</response>
</soapenv:Body>