首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Savon‘`set_auth':错误的参数数(2对3) (ArgumentError)

Savon‘`set_auth':错误的参数数(2对3) (ArgumentError)
EN

Stack Overflow用户
提问于 2017-07-25 09:29:20
回答 1查看 114关注 0票数 0

运行ruby file.rb,给我.rvm/gems/ruby-2.2.6/gems/httpclient-2.6.0.1/lib/httpclient.rb:535:in 'set_auth': wrong number of arguments (2 for 3) (ArgumentError)

file.rb:

代码语言:javascript
复制
require 'savon'

url = 'https://website.com/services/'
login = Base64.strict_encode64("2111:232330:OunOi28")

client = Savon.client(
  endpoint: url,
  namespace: url,
  log: true,
  pretty_print_xml: true,
  basic_auth: "Basic #{login}"
  )
response = client.call(:something)

注意:我必须发送3份凭据,目前在登录变量中传递它们。

如何在客户端或客户端调用中定义此set_auth

堆栈跟踪:

代码语言:javascript
复制
from .rvm/gems/ruby-2.2.6/gems/httpi-2.4.1/lib/httpi/adapter/httpclient.rb:54:in 'setup_auth' 

from .rvm/gems/ruby-2.2.6/gems/httpi-2.4.1/lib/httpi/adapter/httpclient.rb:43:in 'setup_client' 

from .rvm/gems/ruby-2.2.6/gems/httpi-2.4.1/lib/httpi/adapter/httpclient.rb:25:in
'request' 

from .rvm/gems/ruby-2.2.6/gems/httpi-2.4.1/lib/httpi.rb:161:in 'request' 

from .rvm/gems/ruby-2.2.6/gems/httpi-2.4.1/lib/httpi.rb:133:in 'post' 

from .rvm/gems/ruby-2.2.6/gems/savon-2.11.1/lib/savon/operation.rb:94:in 'block in call_with_logging'

from .rvm/gems/ruby-2.2.6/gems/savon-2.11.1/lib/savon/request_logger.rb:12:in 'call' 

from .rvm/gems/ruby-2.2.6/gems/savon-2.11.1/lib/savon/request_logger.rb:12:in 'log' 

from .rvm/gems/ruby-2.2.6/gems/savon-2.11.1/lib/savon/operation.rb:94:in 'call_with_logging'
from .rvm/gems/ruby-2.2.6/gems/savon-2.11.1/lib/savon/operation.rb:54:in 'call' 

from .rvm/gems/ruby-2.2.6/gems/savon-2.11.1/lib/savon/client.rb:36:in 'call' 

from file.rb:18:in '<main>'
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-07-25 09:53:51

您不需要将数组传递给:basic_auth参数,即:

代码语言:javascript
复制
client = Savon.client(
  endpoint: url,
  namespace: url,
  log: true,
  pretty_print_xml: true,
  basic_auth: [login, password] # (Whatever the password is??)
)

错误来自源代码中的这里;它需要一个用户名和密码数组。

有关正确用法,请参见文档的身份验证部分

身份验证 HTTP身份验证将用于检索远程WSDL文档和实际SOAP请求。 basic_auth Savon支持HTTP基本身份验证。 Savon.client(basic_auth: ["luke", "secret"]) ..。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45299208

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档