Ruby on rails Ruby:EndpointDispatcher SOAP API上的Savon AddressFilter不匹配

Ruby on rails Ruby:EndpointDispatcher SOAP API上的Savon AddressFilter不匹配,ruby-on-rails,ruby,api,soap,savon,Ruby On Rails,Ruby,Api,Soap,Savon,我对肥皂还不熟悉,我对Savon有很多麻烦。 我试图访问的API包含非常简单的文档: 进行调用时,API希望在发送的参数中进行身份验证。这是我的密码: client = Savon.client( wsdl: "https://school.sona-systems.com/services/SonaAPI.svc?singleWsdl", soap_header: {'To:' => "http://www.sona-systems.com/"}, pretty_print_xml: t

我对肥皂还不熟悉,我对Savon有很多麻烦。 我试图访问的API包含非常简单的文档:

进行调用时,API希望在发送的参数中进行身份验证。这是我的密码:

client = Savon.client(
wsdl: "https://school.sona-systems.com/services/SonaAPI.svc?singleWsdl",
soap_header: {'To:' => "http://www.sona-systems.com/"},
pretty_print_xml: true,
soap_version: 2
)

response = client.call(:get_study_list) do
  message username: "foo", password: "bar"
end
我得到以下错误:

Savon::SOAPFault: (s:Sender) The message with To '' cannot be processed at the receiver, due to an AddressFilter mismatch at the EndpointDispatcher.  Check that the sender and receiver's EndpointAddresses agree.

soap\u头:
应该做什么

我也无法访问您提供的url。您应该向客户端定义中添加
log:true,log\u level::debug
,以获取更多信息

试试这个:

client = Savon.client(
  wsdl: "https://kellogg-elab.sona-systems.com/services/SonaAPI.svc?wsdl",
  pretty_print_xml: true,
  log: true,
  log_level: :debug
)
puts client.operations

# then call a method of the service like this

resp = client.call(:get_study_list,
               message: {username: "foo", password: "bar"}
              )

Steffen,谢谢你的回复。头球应该是用来修正萨文给我的空球,不确定这是否有效。。。我可以读取操作,但是当调用不同的方法时,我会得到上面的错误。正确的链接应该是“我为一个调用添加了一个示例。您没有给它一个块,而是参数。消息显然不适合特定的调用,但您应该知道在其中添加了什么。