I'm trying to use Savon to send requests to a webservice. The service I'm consuming requires nested namespaces, and I haven't figured out yet how to provide them on a request.
I've tried to craft the request by hand (with nokogiri, actually) and send the resulting xml:
client.call(:some_op, :message=>{:"op"=>"<elem/>"})
But savon escapes the string and sends <elem/>
How can I send raw xml without escaping?
The call should look like this:
client.call(:some_op, xml: "<elem />")
Or if you just want to set one or multiple namespaces then create a client as follows (without WSDL):
client = Savon.client(
:endpoint => 'http://www.example.com',
:namespace => 'urn:core.example.com',
:namespaces => { 'ns1' => 'http://v1.example.com',
'ns2' => 'http://v2.example.com' },
:log => true,
:log_level => :debug,
:pretty_print_xml => true
)
The namespaces are a Hash
parameter.