0

我的任务是围绕soap api编写一些检查,但遇到了一些麻烦。

我已将 wsdl 导入 SoapUI 进行测试。SoapUI 解析出 wsdl 并为我要调用的操作 (PerfmonOpenSession) 生成一个示例请求。这是它生成的示例..当我提交请求时,它成功返回。

当我尝试在 Ruby 中对 Savon 做同样的事情时,它会返回 this。我注意到 savon 正在使用 tns 命名空间,并且还将单词“Input”附加到操作名称中。因此,我没有调用soap:PermonOpenSession,而是调用tns:PerfmonOpenSessionInput(它不存在)。

wsdl 实际上为端口定义了一个“输入”消息(见第 224 行),这让我更加困惑。所以.. Savon 在这里做对了吗?如果是这样,SoapUI 是如何知道如何正确形成soap 请求的?如何使 savon 的请求看起来像 SoapUI 生成的请求?

4

1 回答 1

0

在这种情况下,我通常会跳过 WSDL 并在没有它的情况下创建客户端。这适用于 Savon v1 和 v2。你必须设置

endpoint

namespace

您可能还想设置

soap_action

明确地。http://savonrb.com上的文档解释了要做什么。如果您需要进一步的帮助,请告诉我们。

于 2013-09-20T20:43:13.107 回答