如何在不使用WSDL的情况下创建Ruby SOAP客户机?
我需要编写一个能够发送和接收soap消息的soap客户端 此soap服务没有关联的WSDL文件,soap4r和savon似乎都需要一个 我有一个我需要在Java中执行的示例,请参见下面的链接 我可以用java来实现这一点,在这一点上看起来会更容易。然而,我个人更喜欢用ruby进行编码,我们公司拥有比java更多的ruby资源 有谁能证实,在ruby中做类似java示例的事情,而不必编写自己的专门soap库,这是可能的吗?。我需要能够发送有效负载,我相信它通常是以soap附件的形式 我特别感兴趣的是看到不使用WSDL的soap4r示例,因为我在google中很难找到任何示例 非常感谢您的帮助。不需要WSDL文档。请看一看。如果您知道SOAP端点和目标命名空间,则可以执行如下SOAP请求:如何在不使用WSDL的情况下创建Ruby SOAP客户机?,ruby,soap,Ruby,Soap,我需要编写一个能够发送和接收soap消息的soap客户端 此soap服务没有关联的WSDL文件,soap4r和savon似乎都需要一个 我有一个我需要在Java中执行的示例,请参见下面的链接 我可以用java来实现这一点,在这一点上看起来会更容易。然而,我个人更喜欢用ruby进行编码,我们公司拥有比java更多的ruby资源 有谁能证实,在ruby中做类似java示例的事情,而不必编写自己的专门soap库,这是可能的吗?。我需要能够发送有效负载,我相信它通常是以soap附件的形式 我特别感兴趣
client = Savon::Client.new
wsdl.endpoint = "http://example.com"
wsdl.namespace = "http://soap.example.com"
end
client.request :any_soap_action do
soap.body = { :do => "something" }
end
这不起作用,它会丢失块名和命名空间中的“e”:
client = Savon::Client.new do | wsdl |
wsdl.endpoint = "http://example.com"
wsdl.namespace = "http://soap.example.com"
end
从SavonV2开始,语法略有不同
client = Savon.client do
endpoint "http://example.com"
namespace "http://v1.example.com"
end
修复了“名称空间”的拼写。谢谢但是你错了,关于街区的争论。如果您传递一个没有参数的块,savon将使用instance eval(带委托)。
client = Savon.client do
endpoint "http://example.com"
namespace "http://v1.example.com"
end