Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/fortran/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在不使用WSDL的情况下创建Ruby SOAP客户机?_Ruby_Soap - Fatal编程技术网

如何在不使用WSDL的情况下创建Ruby SOAP客户机?

如何在不使用WSDL的情况下创建Ruby SOAP客户机?,ruby,soap,Ruby,Soap,我需要编写一个能够发送和接收soap消息的soap客户端 此soap服务没有关联的WSDL文件,soap4r和savon似乎都需要一个 我有一个我需要在Java中执行的示例,请参见下面的链接 我可以用java来实现这一点,在这一点上看起来会更容易。然而,我个人更喜欢用ruby进行编码,我们公司拥有比java更多的ruby资源 有谁能证实,在ruby中做类似java示例的事情,而不必编写自己的专门soap库,这是可能的吗?。我需要能够发送有效负载,我相信它通常是以soap附件的形式 我特别感兴趣

我需要编写一个能够发送和接收soap消息的soap客户端

此soap服务没有关联的WSDL文件,soap4r和savon似乎都需要一个

我有一个我需要在Java中执行的示例,请参见下面的链接

我可以用java来实现这一点,在这一点上看起来会更容易。然而,我个人更喜欢用ruby进行编码,我们公司拥有比java更多的ruby资源

有谁能证实,在ruby中做类似java示例的事情,而不必编写自己的专门soap库,这是可能的吗?。我需要能够发送有效负载,我相信它通常是以soap附件的形式

我特别感兴趣的是看到不使用WSDL的soap4r示例,因为我在google中很难找到任何示例

非常感谢您的帮助。

不需要WSDL文档。请看一看。如果您知道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