ruby - 使用 Savon 2 发送原始 XML

标签 ruby xml soap savon

我正在尝试使用 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/

相关文章:

ruby - 处理复合记录的 Rails 模型

ruby - 如何说服 Rubygems (1.3.3) 我确实希望它安装依赖项?

绑定(bind)到前缀的XML模式导入-vs-命名空间

php - XPath - 修剪前导空白

java - 在自定义拦截器 (Soap12FaultOutInterceptor) 中捕获 SOAP Fault 错误

java - Spring新手: how to override properties for Test application

javascript - JavaScript 上的 SOAP 服务调用在 Safari 中有效,但在 Chrome 或 Firefox 中无效

ruby-on-rails - 为什么夹具中的这个 ERB 代码会抛出 'undefined method' ?

ruby-on-rails - 通过回形针上传大文本文件的性能问题

java - 休息服务: how to produce human readable output using XML + XSLT?