我的任务是在soap api周围写一些支票,而且我遇到了一些麻烦。
我已将wsdl导入SoapUI进行测试。 SoapUI解析出了wsdl并为我想调用的操作生成了一个示例请求(PerfmonOpenSession)。 Here's a sample of what it generated ..当我提交请求时,它恢复了成功。
当我尝试用Ruby中的Savon做同样的事情时,it returns this。我注意到savon正在使用tns命名空间,并且还将“输入”一词附加到操作名称。所以不是调用soap:PermonOpenSession,而是调用tns:PerfmonOpenSessionInput(它不存在)。
我甚至对wsdl实际上在第224行为端口(seen here定义“输入”消息这一事实感到困惑。那么......萨翁在这里做对了吗?如果是这样,SoapUI如何知道如何正确形成soap请求?如何使savon的请求看起来像SoapUI生成的那个?
答案 0 :(得分:0)
我喜欢这样的情况我通常会跳过WSDL并在没有它的情况下创建一个客户端。这适用于Savon v1和v2。你必须设置
endpoint
和
namespace
您可能还想设置
soap_action
明确地。 http://savonrb.com处的文档说明了该怎么做。如果您需要进一步的帮助,请告诉我们。