ban*_*ing 1 ruby httpclient wasabi savon
我正在尝试使用Ruby脚本连接到SOAP URL。
我正在关注此 Railscasts集。我安装了savon gem(savon(2.4.0))。
然后在我的ruby文件中,我有以下代码:
require 'savon'
client = Savon.client(wsdl:"https://api.comscore.com/KeyMeasures.asmx?WSDL")
response = client.call(:authenticate , message: { username:"xxxxx", password:"xxxxx"})
puts "#{response.inspect}"
Run Code Online (Sandbox Code Playgroud)
我知道网址没有问题,因为我使用了SOAPUI并将WSDL URL放置在那里,并且我得到了响应。
当我运行上面的ruby文件时,出现以下异常:
/Users/XXXX/.rvm/gems/ruby-2.0.0-p247/gems/wasabi-3.2.3/lib/wasabi/resolver.rb:44:in `load_from_remote': Error: 401 (Wasabi::Resolver::HTTPError)
from /Users/XXXXX/.rvm/gems/ruby-2.0.0-p247/gems/wasabi-3.2.3/lib/wasabi/resolver.rb:32:in `resolve'
Run Code Online (Sandbox Code Playgroud)
谷歌搜索之后,我看到了这篇文章,这似乎表明我应该安装并要求使用gem“ httpclient”,然后再试一次。没有变化,仍然出现相同的错误。
有人可以帮忙我吗.....
谢谢
我试图从命令行访问您提供的WSDL curl。我无法访问未经授权的WSDL b / c。我想您首先必须提供凭据作为https请求的一部分。这就是为什么wasabi失败。它找不到WSDL文档。
根据可以通过将以下代码注入到客户端创建中来完成的文档:
client = Savon.client(wsdl: ...,
basic_auth: [ 'username', 'password' ],
log: true,
log_level: :debug,
pretty_print_xml: true)
client.call(...)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2850 次 |
| 最近记录: |