鲁比·萨文 : How to get the request text sent to server?

标签 ruby savon

您好,我正在使用 Savon 访问一些网络服务。

我正在使用此代码:

client=Savon.client(
    wsdl: "WebService.wsdl",
    env_namespace: "S",
    convert_request_keys_to: :camelcase
)

response=client.call(:send_doc)  do
    message(
      Attr1: "123",
      Attr2: "ABC")
    )

如何将请求文本发送到服务器?

问候 法克

最佳答案

Savon 2 提供 Observer界面。您可以注册一个观察者,该观察者会在发送请求之前收到通知。该界面包含一个 Builder 对象,您可以在其中找到请求的 XML 内容。 Builder#pretty() 格式化 XML 内容。

class Observer
  def notify(_, builder, _, _)
    puts builder.pretty
    nil
  end
end

Savon.observers << Observer.new

或者,您可以将 log: true 添加到您的客户端配置中。它允许记录请求。

client = Savon.client(log: true, ...)

关于鲁比·萨文 : How to get the request text sent to server?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17404531/

相关文章:

ruby-on-rails - 为什么 savon client.call 使用带有有效负载的 GET 请求而不是 POST?

ruby - Savon :Module 的未定义方法 `configure'

ruby - 如何在 Ruby 的正则表达式中使用 şŞıİçÇöÖüÜÜĞğ 字符?

ruby-on-rails - Kaminari:对可移动项目列表进行分页

mysql - ActiveRecord 格式连接成数组

ruby - 如何保留 XML 数组到哈希转换中的顺序?

Ruby:重载对实例属性的索引赋值

Ruby 打印出带有可选数字的 float

Ruby (Savon) 持久 SSL session ?

ruby-on-rails - 将管道分隔的字符串数组转换为 ruby​​ 1.9 中的映射