- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
你好,我正在测试一些 Web 服务,我正在尝试使用 SAVON 和我的 WSDL 编写一个客户端。我有一个名为 log_process 的可用操作,我正在尝试访问它但出现错误。我有一个用 PHP 编写的类似脚本,它工作正常。我试过了
require 'net/http'
require "uri"
require 'savon'
client = Savon.client(wsdl: "http://somedomain.com/projects/shared/abc.wsdl")
@a=client.operations
puts @a
ary={0 =>"art", 1 =>"bac", 2 =>"arr"}
@result = client.call(:log_process, message:{0 =>"asdf", 1 =>"qwer", 2 =>"arr"})
puts @result
并得到以下错误
raise_soap_and_http_errors!': (SOAP-ENV:Client) Bad Request (Savon::SOAPFault)
我的 php 工作解决方案如下所示
$result = $client->log_process(array(0=>$user_name,1=>$user_pwd,2=>$display_type));
知道与此等效的 ruby 是什么,还是我以正确的方式调用该操作?
最佳答案
我知道这已经晚了,但我在尝试使用 savon 向我广泛使用 PHP Soap 服务器的 soap 服务器设置 soap 请求时遇到了完全相同的问题。我找到了另一篇与此相关的帖子,似乎添加了 message_tag
选项修复了它。
这是因为在我的例子中,WSDL 期望 functionNameRequest
在 xml 中,但 savon 只发送 funcionName
通过设置 message_tag
至 functionNameRequest
>soap 服务器能够正确映射所请求的功能。
这是帮助我解决问题的话题 https://github.com/savonrb/savon/issues/520相关代码引用如下:
Hi, I'm just sharing this in case it's useful.
I'm using savon 2.3.0 and I guess the gem had some problems identifying parameters >automatically from my wsdl. I have no idea about SOAP and this is the first time I'm >actually using it.
I'm dealing with TradeTracker's WSDL
With the following code I got it working:
client = Savon.client do
wsdl "http://ws.tradetracker.com/soap/affiliate?wsdl"
namespace_identifier :ns1
end
credentials = {
customerID: 123123,
passphrase: "123123123"
}
response = client.call(:authenticate, message_tag: :authenticate, message: credentials)
关于ruby-on-rails - 使用 SAVON 的 Ruby SOAP 客户端不工作,而 PHP SOAP 客户端工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17721437/
我正在尝试关注讨论 here使用 Ruby 和 Savon。我能够检索 session ID,但是每当我执行来自需要身份验证(跟踪器)的客户端的请求时,我都会收到“授权失败”错误。 require '
我正在使用 savon 0.9.7 和 ruby 1.8.7,我提出以下要求: client = Savon::Client.new do wsdl.document = "http://lo
我正在尝试发出 soap 请求,但是当我使用 operation.body 方法时,每个数组似乎都不在 operation.build 之后的 xml 中。 这是 WSDL 的一部分: --
我正在尝试利用 ruby gem Savon 连接到 propertyware (http://propertyware.com/apidocs/Getting-Started) 提供的 Web
我正在尝试使用 Savon gem 连接到网络服务。我对服务的了解: wsdl 文件 url ".../service.svc?wsdl" 登录“登录” 密码“密码” 域“域” 我通过 SoapUI
我正在使用 savon gem 访问 abc 金融网络服务。我收到错误消息用户未授权。我正在使用此代码访问响应 @wsdl="https://webservice.abcfinancial.com/w
我正在编写一个 gem 来为 Ruby 添加对 SOAP 服务的支持(我讨厌自己这样做,但是,你知道,遗留系统感到孤独,需要找人谈谈),我想知道是否有办法我可以使用 Savon 作为客户端库编写一些测
如果我有以下 SOAP 请求: 0
我正在使用 Savon 2.6 来实现 SOAP 服务的客户端。我必须在数据库中保存原始请求和原始响应。获取原始 XML 响应不是问题,但如何获取原始 XML 请求? 我按以下方式使用 Savon:
当 Savon 解析 XML 时: 它返回一个散列 {MessageList: TradeMessage: [{@id: '123'},...,{@id: '456'}]}
我正在使用 Savon对于 SOAP 请求和 SOAP 请求 XML 的某些地方,我需要生成这段代码: 执行此操作的最佳方法是什么? 最佳答案 我找到了解决方案。 soap.bo
我在具有自签名证书的设备上执行 soap 请求。我设置了 verify_mode :none,但我仍然收到“深度 0 - 18:自签名证书”警告。我知道如果我可以设置 verify_callback,
我想从以下响应中读取 customer.customer_info_id 的值。我的回复还包括命名空间: 我尝试了以下方法: # Savon code tried:
我曾尝试在针对 WSDL 运行 Savon 时更改其日志记录,但未能成功更改日志记录级别。 我阅读了文档:http://rubiii.github.com/savon/#global_configur
在运行 Cucumber 测试时,我得到(除了测试结果)大量调试/日志相关的输出形式: D, [2013-03-06T12:21:38.911829 #49031] DEBUG -- : SOAP r
我正在使用 savon version 2 (使用 Ruby on Rails )调用 web 服务,我需要向我的信封注入(inject)一些额外的命名空间。就像是: 我在 Savon Git pr
我正在使用 Ruby Savon,我必须创建一个请求,其中包含一个数组,该数组中有属性。我的问题是如何在每个子数组中添加一个属性。 JOHN
在 Savon 1 中,我可以使用 soap.input 添加 xmlns,如下所示: soap_client = Savon.client("http://pathtowsdl.com/a.svc?
我可以在 Savon 日志中看到我的 SOAP 错误包含如下 XML: 666some evil error 有谁知道如何从响应中解析错误代码和描述?很抱歉,如果这是一个愚蠢的问题,但我已经尝试了所有
我正在开发一个使用 Savon 在多线程中连接到 SSL 安全 SOAP 服务的应用程序。 要求之一是使用持久的 SSL 连接。 “谷歌搜索”没有给出有意义的结果.. 除了关于 net-http-pe
我是一名优秀的程序员,十分优秀!