Soap 如何为savon版本2设置参数
我正在阅读savon版本1附带的railscast#290。 所以我尝试替换版本2的命令,但我做不到 我替换了这些命令 ver1Soap 如何为savon版本2设置参数,soap,wsdl,savon,Soap,Wsdl,Savon,我正在阅读savon版本1附带的railscast#290。 所以我尝试替换版本2的命令,但我做不到 我替换了这些命令 ver1client=Savon::client.new(“http://www.webservicex.net/uszip.asmx?WSDL“” ver2client=Savon::client.new(wsdl:http://www.webservicex.net/uszip.asmx?WSDL“” ver1client.wsdl.soap\u操作 版本2client.
client=Savon::client.new(“http://www.webservicex.net/uszip.asmx?WSDL“”
ver2client=Savon::client.new(wsdl:http://www.webservicex.net/uszip.asmx?WSDL“”
ver1client.wsdl.soap\u操作
版本2client.operations
ver1client.request:web,:get\u info\u by\u zip,body:{“USZIP”=>“90210”}
ver2client.call(:get_info_by_zip)#需要更多信息
如何设置命名空间web
和主体参数USZIP
和90210
?试试这个(尽管www.webservicex.net不是很可靠):
它们是动态获取消息密钥的一种方法吗?例如“USZip”之类的列表操作恐怕我不明白您的问题。如果我猜对了,那么WSDL就是您想要的。它为您提供了SOAP调用的结构。使用wsdl将获得具有可用操作的结构。是列出每个操作的消息选项的一种方法。是的,SoapUI将为您提供包含所有必需和可选参数的正确语法。它使用WSDL实现。如果没有实现,您可以扩展WSDL解析器,如果您需要:-)。目前,您将获得操作列表,仅此而已。
#!ruby
require 'savon'
WSDL_URL = 'http://www.webservicex.net/uszip.asmx?wsdl'
client = Savon.client(wsdl: WSDL_URL,
log: true, # set true to switch on logging
log_level: :debug,
pretty_print_xml: true)
zip = ARGV[0] || "10004"
response = client.call(:get_info_by_zip, message: {"USZip"=>zip})
print response