ruby-on-rails - 无法找到 SOAP 操作 RAILS + SAVON

标签 ruby-on-rails web-services soap savon

我正在学习 Web 服务 API,因此我在 Rails 应用程序上使用 Savon for SOAP。我似乎无法执行从提供商处获取语言列表这样的简单操作。我做错了什么?

这里是 SOAP 请求的链接 GetLanguages

下面是我在 irb 上的代码:

2.1.2 :001 > require 'savon'
 => true 
2.1.2 :002 > soap_wsdl = "https://www.betamobi.tym2sell.co.bw/service/portalservice.asmx"
 => "https://www.betamobi.tym2sell.co.bw/service/portalservice.asmx"
2.1.2 :003 > client = Savon.client(wsdl: soap_wsdl)
2.1.2 :004 > response = client.call(:get_languages)
Savon::UnknownOperationError: Unable to find SOAP operation: :get_languages
Operations provided by your service: []
from /home/sifiso/.rvm/gems/ruby-2.1.2/gems/savon-2.11.1/lib/savon/operation.rb:23:in `ensure_exists!'
from /home/sifiso/.rvm/gems/ruby-2.1.2/gems/savon-2.11.1/lib/savon/operation.rb:15:in `create'
from /home/sifiso/.rvm/gems/ruby-2.1.2/gems/savon-2.11.1/lib/savon/client.rb:32:in `operation'
from /home/sifiso/.rvm/gems/ruby-2.1.2/gems/savon-2.11.1/lib/savon/client.rb:36:in `call'
from (irb):99
from /home/sifiso/.rvm/rubies/ruby-2.1.2/bin/irb:11:in `<main>'

Savon 版本为 2.11.1,Rails 版本为 4.2.6

最佳答案

我终于明白了。如下:

soap_wsdl = "https://www.betamobi.tym2sell.co.bw/service/portalservice.asmx"

应该是:

soap_wsdl = "https://www.betamobi.tym2sell.co.bw/service/portalservice.asmx?wsdl"

关于ruby-on-rails - 无法找到 SOAP 操作 RAILS + SAVON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36310268/

相关文章:

Java SOAP "wsimport"- 从文档/文字包装的 WSDL 强制包装绑定(bind)?

ruby-on-rails - 我可以将 SPDY 与 Unicorn 一起使用吗?

ruby-on-rails - "WARN Could not determine content-length of response body."是什么意思,我该如何摆脱它?

java - 如何在Tomcat7中部署WS

xml - Magento 使用 soap v2 创建类别

java - 尝试从 java webservice 中的 json 对象获取值时出现异常

Android:关于android webservice

android - 从 Android 中的 SOAP 响应解析数据

ruby-on-rails - ActiveResource从根本上有缺陷吗?

ruby-on-rails - 尝试使用 rspec 和 Capybara 测试 omniauth,失败