使用 Rails 和 Savon 2.0 使用 Web 服务时出错

Error consuming Web Service with Rails and Savon 2.0

我正在尝试使用 Rails 4 和 Savon 2.0 的测试 SOAP Web 服务。

代码:

client = Savon.client(wsdl: "http://www.webservicex.net/periodictable.asmx?WSDL", 
                      log_level: :debug,
                      pretty_print_xml: true)
message = {ElementName: 'Zinc'}
response = client.call(:get_element_symbol, message)

日志中的错误:

Savon::UnknownOptionError (Unknown local option: :ElementName):

工作代码是:

client = Savon.client(wsdl: "http://www.webservicex.net/periodictable.asmx?WSDL", 
                      log_level: :debug,
                      pretty_print_xml: true)
message = {'ElementName' => 'Zinc'}
response = client.call(:get_element_symbol, message: message)

符号在 Savon 2 中自动转换为蛇形,因此它将发送 element_name 而不是 ElementName。因此,您应该改用字符串键。

此外,您的消息应包含在 message 参数下。