0

我已经为 Web 服务设置了一个soap4r客户端,它运行良好。我们使用它来将数据从一个数据库发送到另一个数据库(不要问这个问题......我知道这不是最佳的),但我们并不完全确定映射是否正确,所以它通常非常方便特定记录将生成的 XML。

当然,这是可能的 - 如果您设置$DEBUG,soap4r将为您提供一个很好的 XML 转储。您甚至可以设置要发送到的“设备”(文件)。

但是,我希望能够获得它将生成的 XML,而不必实际调用 Web 服务。

有没有办法做到这一点?四处寻找,我发现了多种obj2soap类似的方法,但似乎没有一个是我想要的。

4

1 回答 1

1

一个间接的答案:你可能想看看handsoap。它更快,并试图更像 Ruby。它使用构建器样式的 XML 生成 - 但您必须自己生成所有内容。它更像是一个工具箱,可以用干净的方式编写您的客户端。这样你就知道生成了什么(并且可以很容易地检查它)。

另一种选择是设置 $DEBUG 并在之后恢复它:

$REMEMBER_DEBUG_STATE = $DEBUG
$DEBUG = true
# call soap (and have your XML generated)
$DEBUG = $REMEMBER_DEBUG_STATE

这可以提取为一个很好的函数,如下所示:

def with_debug_output
  remember = $DEBUG
  $DEBUG = true
  yield if block_given?
  $DEBUG = remember
end

然后使用它:

with_debug_output do
  # call soap
end
于 2009-07-31T21:20:42.213 回答