使用Savon 2发送原始XML

我正在尝试使用Savon将请求发送到Web服务。 我正在使用的服务需要嵌套的命名空间,我还没有想出如何在请求中提供它们。

我试图手工制作请求(实际上是用nokogiri)并发送生成的xml:

client.call(:some_op, :message=>{:"op"=>""}) 

但savon逃脱了字符串并发送<elem/>

如何在不转义的情况下发送原始xml?

调用应如下所示:

 client.call(:some_op, xml: "") 

或者,如果您只想设置一个或多个名称空间,则按如下方式创建客户端(不使用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 ) 

名称空间是Hash参数。