我的任务是围绕soap api编写一些检查,但遇到了一些麻烦。
我已将 wsdl 导入 SoapUI 进行测试。SoapUI 解析出 wsdl 并为我要调用的操作 (PerfmonOpenSession) 生成一个示例请求。这是它生成的示例..当我提交请求时,它成功返回。
当我尝试在 Ruby 中对 Savon 做同样的事情时,它会返回 this。我注意到 savon 正在使用 tns 命名空间,并且还将单词“Input”附加到操作名称中。因此,我没有调用soap:PermonOpenSession,而是调用tns:PerfmonOpenSessionInput(它不存在)。
wsdl 实际上为端口定义了一个“输入”消息(见第 224 行),这让我更加困惑。所以.. Savon 在这里做对了吗?如果是这样,SoapUI 是如何知道如何正确形成soap 请求的?如何使 savon 的请求看起来像 SoapUI 生成的请求?