我已经为web服务设置了一个soap4r客户端,它工作得相当好。我们正在使用它将数据从一个数据库发送到另一个数据库(不必费心询问这一点……我知道这不是最优的),但我们不能完全确定映射是否正确,因此获取特定记录将生成的XML通常是非常方便的。
当然,这也是可能的--如果您设置了$DEBUG,soap4r将通过网络为您提供一个很好的XML转储。你甚至可以设置你想要发送到的“设备”(文件)。
但是,我希望能够获得它将要生成的XML,而不必实际调用web服务。
有没有办法做到这一点?到处寻找,我发现了各种各样的obj2soap和类似的方法,但似乎没有一个是我想要的。
发布于 2009-07-31 21:20:42
一个间接的答案是:您可能想看看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
endhttps://stackoverflow.com/questions/1189130
复制相似问题