我正在尝试使用 Savon 向网络服务发送请求。我正在使用的服务需要嵌套命名空间,但我还没有弄清楚如何根据请求提供它们。
我尝试手工制作请求(实际上是使用 nokogiri)并发送生成的 xml:
client.call(:some_op, :message=>{:"op"=>"<elem/>"})
但是savon转义字符串并发送<elem/>
如何在不转义的情况下发送原始 xml?
最佳答案
调用应该是这样的:
client.call(:some_op, xml: "<elem />")
或者,如果您只想设置一个或多个命名空间,则按如下方式创建一个客户端(不使用 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
参数。
关于ruby - 使用 Savon 2 发送原始 XML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21913449/